ХА! Я знаю багу в БСД

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Adekamer
пингвин
Сообщения: 694
Зарегистрирован: 2007-10-09 18:36:48
Откуда: 127.0.0.1
Контактная информация:

ХА! Я знаю багу в БСД

Непрочитанное сообщение Adekamer » 2008-02-21 17:18:52

из-за ошибки в реализации округлений при подсчете чисел с плавующей точкой есть бага в БСД
в частности в БСД нельзя 529 поделить на 23
калькулятор или в шеле просто отказывается выполнять эту команду - может крашнуть систему

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
idle
мл. сержант
Сообщения: 80
Зарегистрирован: 2007-02-28 12:21:52
Откуда: Барселона
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение idle » 2008-02-21 17:36:56

Код: Выделить всё

#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: ХА! Я знаю багу в БСД

Непрочитанное сообщение Adekamer » 2008-02-21 17:41:30

повтори операцию еше десять раз или в цикле

Аватара пользователя
idle
мл. сержант
Сообщения: 80
Зарегистрирован: 2007-02-28 12:21:52
Откуда: Барселона
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение idle » 2008-02-21 17:45:28

Код: Выделить всё

while true; do expr 529 / 23; done
23
23
...
Крутит, не падает.
Оставить на ночь?

Аватара пользователя
toughcat
мл. сержант
Сообщения: 97
Зарегистрирован: 2007-06-28 2:23:48
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение toughcat » 2008-02-21 17:59:48

круто... а мужыки-то и не знали...
*побежал постить на ЛОР

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение weec » 2008-02-21 18:01:34

Adekamer, расскажи подробнее
как повторить проблемную ситуацию, опиши свою конфигурацию

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение terminus » 2008-02-21 18:12:44

6.2-RELEASE-p11 - не работает, то есть все работает ниче не упало
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение dikens3 » 2008-02-21 18:47:07

Может забанить автора, чтобы не гадил такими постами?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
pr0t
мл. сержант
Сообщения: 78
Зарегистрирован: 2007-09-26 10:12:11
Откуда: Москва

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение pr0t » 2008-02-21 19:51:05

Может он НетБСД имеет в виду...Или Драгонфлай :mrgreen:
...ака Smaug

Аватара пользователя
Mefis
мл. сержант
Сообщения: 116
Зарегистрирован: 2007-08-14 14:21:59
Откуда: Украина, Киев
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение Mefis » 2008-02-21 20:06:58

у меня PCBSD 1.4. калькулятор не считает :) вылетает)
Confucius say: Karma is a bitch

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35092
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение Alex Keda » 2008-02-21 20:29:22

вот так - наплодили форков кривых =)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение terminus » 2008-02-21 21:38:39

Стоило ожидать... Раз уж pbi а не порты, раз уж все монтируется/демонтируетса само без паники, то о каком вообще делении 529 на 23 может идти речь? :mrgreen:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение f_andrey » 2008-02-21 22:08:00

lissyara писал(а):вот так - наплодили форков кривых =)
http://aleksg.livejournal.com/477832.html ;)
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение terminus » 2008-02-21 22:27:25

Не, Adekamer ведь обещал КРАШъ всей системы к чертовой перематере :mrgreen:

Не может же все быть так плоско :mrgreen: :twisted: :mrgreen:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение f_andrey » 2008-02-21 22:40:58

Как то навевает на мысль что сегодня день мега прикола 29 :) судя по коментам к посту это мегабоян, но я как то раньше тоже не слышал, наверное среди математиков так прикалываются :)
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение princeps » 2008-02-21 23:27:37

Блин, Адекамер, шутник :) Полдня убил, пытался повесить систему извлечением корня из 529 :)
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

Гость
проходил мимо

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение Гость » 2008-02-22 8:39:13

Код: Выделить всё

> 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
И все выдают `23', но это не интересно...
Как насчет еще способов для простой арифметики штатными средствами из шелла (perl/python/etc отпадают, ибо не штатные)?

ps, а есть ли способ запустить файл из stdout? а то последний пример выглядит коряво, хотя второй тоже не очень

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение zingel » 2008-02-23 9:29:59

Разьве это баг, во я недавно нашел

http://www.freebsd.org/cgi/query-pr.cgi?pr=120872
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение dikens3 » 2008-02-23 10:16:29

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: ХА! Я знаю багу в БСД

Непрочитанное сообщение zingel » 2008-02-23 11:39:58

fstat валится по сигфолту от 45 байт в функции _kvm_initvtop() /usr/src/lib/libkvm/kvm.c,

Код: Выделить всё

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);
}
нужно сделать #define EEXIST 17 на проверке elf-формата фала.

Это ли не баг? Тем боле ответа от девелоперов небыло. Оно там будет лежать пока я не напишу патч, напишу - выложу.
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение zingel » 2008-02-23 18:53:50

Вобщем-то я малость опоздал,

Код: Выделить всё

"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: ХА! Я знаю багу в БСД

Непрочитанное сообщение Гость » 2008-02-24 3:27:05

но это всего лишь проверка на заголовок. А если с заголовком все в порядке, а с данными нет, то разве нет шанса эксплуатировать привилегии sgid программы с группой kmem? Если такого шанса нет, то зачем вообще проверять заголовок?
соррри, если сказал глупость

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение zingel » 2008-02-24 8:11:15

проверка заголовка нужна для условия ELF или не ELF-формат, "если с заголовком всё в порядке, а с данными - нет" - такого с ELF не бывает.
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение zingel » 2008-02-27 9:50:58

Z301171463546 - можно пожертвовать мне денег

Гость
проходил мимо

Re: ХА! Я знаю багу в БСД

Непрочитанное сообщение Гость » 2008-02-27 10:37:46

там про kernel based virtual machine, а не про kernel virtual memory.
А в статусе Porting Linux KVM To FreeBSD не написано committed.

Перепутал?