LINUX.ORG.RU

Найден 33-летний баг в коде yacc

 , , ,


0

0
Голландский программист Отто Моэрбик случайно нашёл баг в коде функции yyparse(), вскоре после написания собственного варианта malloc для OpenBSD. Николай Штурм первым обнаружил проблему, предположительно связанную с новым malloc, на платформе SPARC64 при попытке компиляции большого проекта на С++ с использованием новой версии malloc от Моэрбика, компилятор иногда завершается с сообщением о внутренней ошибке. После недолгого исследования оказалось, что при определённых условиях (создаваемых новой версией malloc) в функции yyparse происходит обращение к несуществующему элементу массива.

Выпущен соответствующий патч для OpenBSD, решающий данную проблему. Данный баг существует и в старых версиях UNIX вплоть до Sixth Edition UNIX, выпущенной в 1975 году.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Какой ужас! Как теперь дальше жить?
anonymous
()
бздуны коллекционируют баги, или почему? Сколько лет предыдущему "старику" было?
anonymous
()
Во всех анонимусах выше есть баг с возрастом, равным возрасту анонимуса. :-P
anonymous
()
Не забывайте, что BSD - это настоящий UNIX в отличие от линупса. Настоящий, в смысле имеет корни в давней подел^W разработке AT&T.
anonymous
()
На книгу рекордов Гиннеса уже тянет :))
elipse ★★★
()
Решето!
anonymous
()
У меня просто нет слов. Баг _ОБНАРУЖИЛИ В ПЕРВЫЙ РАЗ_ в OpenBSD, а до этого он был как минимум в UNIX 6 ed., которая вышла в 75-м, а 1BSD вышла в 77-м, через 2 года _ПОСЛЕ_ шестой редакции UNIX.

P.S. Не знал, что Интернет провели в детсады.
seiken ★★★★★
() автор топика
Этот почтенный баг был старше меня. Светлая ему память.
Git
()
Ответ на: комментарий от anonymous
> Не забывайте, что BSD - это настоящий UNIX

Правильно. BSD такое же г-о как и настоящий UNIX.

Кстати пусть GNU-инструментарий своими лапами грязными не лапают.

anonymous
()
Ответ на: комментарий от anonymous
> BSD <...> имеет корни в давней подел^W разработке AT&T.

МакБрайд, перелогиньтесь.

Naomi
()
тупые анонимусы даже не поняли, что yacc не имеет отношения к конкретной операционной системе
dimon555 ★★★★★
()
Ответ на: комментарий от anonymous
>Програмиста багописца к награде

Ну Гинесс полюбому должен заинтересоваться :)

anonymous
()
Так вам и надо, красноглазые. В 21 веке надо использовать строготипизированные языки с управляемым кодом а не тащить одну и ту же помойку и удивлятся что от нее постоянно что то отваливается
anonymous
()
Ответ на: комментарий от anonymous
>>Так вам и надо, красноглазые. В 21 веке надо использовать строготипизированные языки с управляемым кодом а не тащить одну и ту же помойку и удивлятся что от нее постоянно что то отваливается

типо дайошь типизированный, управляемый ассемблер?

следовательно и процессор подключённый прямой связью с Intell corporation

anonymous
()
Ответ на: комментарий от anonymous
>В 21 веке надо использовать строготипизированные языки

У анонимусов язык типизован наиболее строго.

anonymous
()
Дело в том, что для самой популярной платформы получается самый стабильный код. Изменяем размер страницы - лезут баги, меняем endianness - вылезает ещё больше багов. И необязательно автор бажного кода бездарь - просто он не расчитывал, что его код будет запускаться на какой-либо платформе, отличной от той, для которой он пишет. Потом есть ещё такие вещи, как производительность, которая слабо совместима с универсальностью. Приходится идти на компромисс - либо скорость, либо портабельность.
seiken ★★★★★
() автор топика
Ответ на: комментарий от anonymous
>типо дайошь типизированный, управляемый ассемблер?

он уже существует, IL Asm называется, следи за новостями, красноглазик

anonymous
()
Ответ на: комментарий от anonymous
>Ассемблер не нужен

Напиши мне автономную программу (какой является ядро ОС) на твоем любимом си-решетка. Ассемблер и C не использовать.

anonymous
()
Ответ на: комментарий от anonymous
> Правильно. BSD такое же г-о как и настоящий UNIX.

Впрочем как и Ъ Linux

anonymous
()
Ответ на: комментарий от anonymous
Сначала gcc патчим, чтобы вирус работал. Теперь вот yacc надо патчить, чтобы работало с чьим-то malloc-ом. Может надо с другой стороны подходить к проблеме?
anonymous
()
Ответ на: комментарий от anonymous
>Напиши мне автономную программу (какой является ядро ОС) на твоем любимом си-решетка. Ассемблер и C не использовать.

Уже давно написано, качай сорцы Singularity

anonymous
()
рекордное РЕШЕТО!!!! RIP! это получше 25 летнего бага.
cvs-255 ★★★★★
()
Пусть кто нить форк снимет с этой поделки. Она не должна просто так исчезнуть.
anonymous
()
Ответ на: комментарий от anonymous
Вот-вот. Люди что угодно использовать будут лишь бы дела с этой поделкой не иметь.
anonymous
()
Ответ на: комментарий от phasma
Вот молодежь неграмотная пошла.
Блин.
Следи за моей указкой:
Unix V6
|
V
1BSD
|
V
4.4BSD
Здесь ветка настоящих BSD закончилась.
----------------
переписали львиную часть кода, удалив код AT&T
новая ветвь
----------------
Net/2
|
V
386BSD
|
V
FreeBSD, OpenBSD, NetBSD

Итог: к "настоящим" UNIX от AT&T равно как и к "настоящим" BSD
OpenBSD,NetBSD,FreeBSD и прочие недоBSD отношения НЕ ИМЕЮТ!
Alphaer ★★★
()
* Тем временем тайная ложа анонимусов пишет новую абсолютно безглючную ОС на brainfuck *
anonymous
()
Ответ на: комментарий от anonymous
>>Напиши мне автономную программу (какой является ядро ОС) на твоем любимом си-решетка. Ассемблер и C не использовать.

>Уже давно написано, качай сорцы Singularity

http://ru.wikipedia.org/wiki/Microsoft_Singularity

Низкоуровневый код обработки прерываний x86 написан на языке ассемблера и C. Библиотеки времени исполнения (англ. runtime) и сборщик мусора написаны на Sing# (специально доработанном для данного проекта диалекте C#) с использованием небезопасного режима (англ. unsafe mode).

:P

gaux ★★
()
Ответ на: комментарий от AntiWindows
> Рекорд 25 лет успешно побит :)

Первая бага была еще у Ады Лавлейс на Машине Бэбиджа,а отловили ее только в 70-е гг в СССР. Так что даже если всплывут баги, унаследованные от Multics, рекорда им не видать

obsidian
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.