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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.