Vulpo One

Tag: openbsd

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

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

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

c linux.org.ru

Comments