ХА! Я знаю багу в БСД
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- Adekamer
- пингвин
- Сообщения: 694
- Зарегистрирован: 2007-10-09 18:36:48
- Откуда: 127.0.0.1
- Контактная информация:
ХА! Я знаю багу в БСД
из-за ошибки в реализации округлений при подсчете чисел с плавующей точкой есть бага в БСД
в частности в БСД нельзя 529 поделить на 23
калькулятор или в шеле просто отказывается выполнять эту команду - может крашнуть систему
в частности в БСД нельзя 529 поделить на 23
калькулятор или в шеле просто отказывается выполнять эту команду - может крашнуть систему
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- idle
- мл. сержант
- Сообщения: 80
- Зарегистрирован: 2007-02-28 12:21:52
- Откуда: Барселона
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Код: Выделить всё
#expr 529 / 23
23
#uname -rs
FreeBSD 4.9-RELEASE
#expr 529 / 23
23
#uname -rs
FreeBSD 7.0-CURRENT
- Adekamer
- пингвин
- Сообщения: 694
- Зарегистрирован: 2007-10-09 18:36:48
- Откуда: 127.0.0.1
- Контактная информация:
Re: ХА! Я знаю багу в БСД
повтори операцию еше десять раз или в цикле
- idle
- мл. сержант
- Сообщения: 80
- Зарегистрирован: 2007-02-28 12:21:52
- Откуда: Барселона
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Код: Выделить всё
while true; do expr 529 / 23; done
23
23
...
Оставить на ночь?
- toughcat
- мл. сержант
- Сообщения: 97
- Зарегистрирован: 2007-06-28 2:23:48
- Контактная информация:
Re: ХА! Я знаю багу в БСД
круто... а мужыки-то и не знали...
*побежал постить на ЛОР
*побежал постить на ЛОР
- weec
- лейтенант
- Сообщения: 948
- Зарегистрирован: 2007-07-24 11:17:35
- Откуда: Afghanistan
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Adekamer, расскажи подробнее
как повторить проблемную ситуацию, опиши свою конфигурацию
как повторить проблемную ситуацию, опиши свою конфигурацию
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: ХА! Я знаю багу в БСД
6.2-RELEASE-p11 - не работает, то есть все работает ниче не упало
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Может забанить автора, чтобы не гадил такими постами?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- pr0t
- мл. сержант
- Сообщения: 78
- Зарегистрирован: 2007-09-26 10:12:11
- Откуда: Москва
- Mefis
- мл. сержант
- Сообщения: 116
- Зарегистрирован: 2007-08-14 14:21:59
- Откуда: Украина, Киев
- Контактная информация:
Re: ХА! Я знаю багу в БСД
у меня PCBSD 1.4. калькулятор не считает вылетает)
Confucius say: Karma is a bitch
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: ХА! Я знаю багу в БСД
Стоило ожидать... Раз уж pbi а не порты, раз уж все монтируется/демонтируетса само без паники, то о каком вообще делении 529 на 23 может идти речь?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- f_andrey
- майор
- Сообщения: 2651
- Зарегистрирован: 2007-12-26 1:22:58
- Откуда: СПб
- Контактная информация:
Re: ХА! Я знаю багу в БСД
http://aleksg.livejournal.com/477832.htmllissyara писал(а):вот так - наплодили форков кривых
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: ХА! Я знаю багу в БСД
Не, Adekamer ведь обещал КРАШъ всей системы к чертовой перематере
Не может же все быть так плоско
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- f_andrey
- майор
- Сообщения: 2651
- Зарегистрирован: 2007-12-26 1:22:58
- Откуда: СПб
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Как то навевает на мысль что сегодня день мега прикола 29 судя по коментам к посту это мегабоян, но я как то раньше тоже не слышал, наверное среди математиков так прикалываются
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308
-
- майор
- Сообщения: 2684
- Зарегистрирован: 2007-09-25 10:20:59
- Откуда: Сочи, Москва
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Блин, Адекамер, шутник Полдня убил, пытался повесить систему извлечением корня из 529
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru
http://www.itforum-sochi.ru
-
- проходил мимо
Re: ХА! Я знаю багу в БСД
Код: Выделить всё
> sh -c 'echo $((529 / 23))'
> csh -c '@ out= 529 / 23; echo $out'
> expr 529 / 23
> echo 529 / 23 | bc
> echo 529 23 / p | dc
> awk 'BEGIN { print 529 / 23 }'
> echo 'main() { printf("%d\n", 529 / 23); }' | cc -xc -; ./a.out
Как насчет еще способов для простой арифметики штатными средствами из шелла (perl/python/etc отпадают, ибо не штатные)?
ps, а есть ли способ запустить файл из stdout? а то последний пример выглядит коряво, хотя второй тоже не очень
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Z301171463546 - можно пожертвовать мне денег
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Моя твоя непонима. :-)zingel писал(а):Разьве это баг, во я недавно нашел
http://www.freebsd.org/cgi/query-pr.cgi?pr=120872
Там ответ дан, неправильное использование команды fsstat -M FILE (А реально нужно -M DUMP_CORE) приводит к такой ошибке. Сказал что смотрит код и возможно сделает чтобы выход осуществлялся без FAULT 11, если в параметре -M будет просто файл.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: ХА! Я знаю багу в БСД
fstat валится по сигфолту от 45 байт в функции _kvm_initvtop() /usr/src/lib/libkvm/kvm.c,
нужно сделать #define EEXIST 17 на проверке elf-формата фала.
Это ли не баг? Тем боле ответа от девелоперов небыло. Оно там будет лежать пока я не напишу патч, напишу - выложу.
Код: Выделить всё
int
kvm_close(kd)
kvm_t *kd;
{
int error = 0;
if (kd->pmfd >= 0)
error |= close(kd->pmfd);
if (kd->vmfd >= 0)
error |= close(kd->vmfd);
if (kd->nlfd >= 0)
error |= close(kd->nlfd);
if (kd->vmst)
_kvm_freevtop(kd);
if (kd->procbase != 0)
free((void *)kd->procbase);
if (kd->argv != 0)
free((void *)kd->argv);
free((void *)kd);
return (0);
}
Это ли не баг? Тем боле ответа от девелоперов небыло. Оно там будет лежать пока я не напишу патч, напишу - выложу.
Z301171463546 - можно пожертвовать мне денег
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Вобщем-то я малость опоздал,
Код: Выделить всё
"Alexander V. Chernikov" <admin@su29.net>
кому 666.root@gmail.com
дата 23.02.2008 17:26
тема Re: i386/120872: fstat exit on signall 11
The following patch fixes an issue on i386/amd64 platforms
kvm_checkheader is a simple cut-n-paste from imgact_elf.c check_header
diff -urN lib/libkvm.orig/kvm.c lib/libkvm/kvm.c
--- lib/libkvm.orig/kvm.c 2008-02-23 17:48:27.000000000 +0300
+++ lib/libkvm/kvm.c 2008-02-23 17:48:33.000000000 +0300
@@ -64,6 +64,8 @@
#include <string.h>
#include <unistd.h>
+#include <machine/elf.h>
+
#include "kvm_private.h"
/* from src/lib/libc/gen/nlist.c */
@@ -136,6 +138,21 @@
return (p);
}
+int
+_kvm_checkheader(void *e)
+{
+ Elf_Ehdr *hdr = e;
+ if (!IS_ELF(*hdr) ||
+ hdr->e_ident[EI_CLASS] != ELF_TARG_CLASS ||
+ hdr->e_ident[EI_DATA] != ELF_TARG_DATA ||
+ hdr->e_ident[EI_VERSION] != EV_CURRENT ||
+ hdr->e_phentsize != sizeof(Elf_Phdr) ||
+ hdr->e_version != ELF_TARG_VER ||
+ hdr->e_machine > MAX_BRANDS)
+ return (ENOEXEC);
+return (0);
+}
+
static kvm_t *
_kvm_open(kd, uf, mf, flag, errout)
kvm_t *kd;
diff -urN lib/libkvm.orig/kvm_amd64.c lib/libkvm/kvm_amd64.c
--- lib/libkvm.orig/kvm_amd64.c 2008-02-23 17:48:27.000000000 +0300
+++ lib/libkvm/kvm_amd64.c 2008-02-23 17:51:27.000000000 +0300
@@ -170,6 +170,11 @@
return (-1);
ehdr = kd->vmst->mmapbase;
+ if (_kvm_checkheader(ehdr) != 0) {
+ _kvm_err(kd, kd->program, "core is not valid ELF core");
+ return (-1);
+ }
+
hdrsz = ehdr->e_phoff + ehdr->e_phentsize * ehdr->e_phnum;
if (_kvm_maphdrs(kd, hdrsz) == -1)
return (-1);
diff -urN lib/libkvm.orig/kvm_i386.c lib/libkvm/kvm_i386.c
--- lib/libkvm.orig/kvm_i386.c 2008-02-23 17:51:03.000000000 +0300
+++ lib/libkvm/kvm_i386.c 2008-02-23 17:51:14.000000000 +0300
@@ -177,6 +177,11 @@
return (-1);
ehdr = kd->vmst->mmapbase;
+ if (_kvm_checkheader(ehdr) != 0) {
+ _kvm_err(kd, kd->program, "core is not valid ELF core");
+ return (-1);
+ }
+
hdrsz = ehdr->e_phoff + ehdr->e_phentsize * ehdr->e_phnum;
if (_kvm_maphdrs(kd, hdrsz) == -1)
return (-1);
diff -urN lib/libkvm.orig/kvm_private.h lib/libkvm/kvm_private.h
--- lib/libkvm.orig/kvm_private.h 2008-02-23 17:48:28.000000000 +0300
+++ lib/libkvm/kvm_private.h 2008-02-23 17:48:33.000000000 +0300
@@ -79,6 +79,9 @@
__printflike(3, 4);
int _kvm_uvatop(kvm_t *, const struct proc *, u_long, u_long *);
+#define MAX_BRANDS 8 /* from sys/imgact_elf.h */
+int _kvm_checkheader(void *);
+
#if defined(__amd64__) || defined(__i386__)
void _kvm_minidump_freevtop(kvm_t *);
int _kvm_minidump_initvtop(kvm_t *);
Z301171463546 - можно пожертвовать мне денег
-
- проходил мимо
Re: ХА! Я знаю багу в БСД
но это всего лишь проверка на заголовок. А если с заголовком все в порядке, а с данными нет, то разве нет шанса эксплуатировать привилегии sgid программы с группой kmem? Если такого шанса нет, то зачем вообще проверять заголовок?
соррри, если сказал глупость
соррри, если сказал глупость
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: ХА! Я знаю багу в БСД
проверка заголовка нужна для условия ELF или не ELF-формат, "если с заголовком всё в порядке, а с данными - нет" - такого с ELF не бывает.
Z301171463546 - можно пожертвовать мне денег
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: ХА! Я знаю багу в БСД
Z301171463546 - можно пожертвовать мне денег
-
- проходил мимо
Re: ХА! Я знаю багу в БСД
там про kernel based virtual machine, а не про kernel virtual memory.zingel писал(а):http://www.securitylab.ru/vulnerability/313747.php
А в статусе Porting Linux KVM To FreeBSD не написано committed.
Перепутал?