Nalezena 33 let stará chyba v Unixu
Nadpis asi zní trochu senzacechtivě, ale o tuto úsměvnou historku se prostě musíme podělit. Mnozí jistě znáte operační systém OpenBSD, jeden z nejbezpečnějších systémů určených primárně pro síťové/serverové nasazení, ostatně pravidelně píšeme o jeho nových verzích. Tak tedy, jeden z vývojářů, Otto Moerbeek, během testování nové implementace alokátoru paměti malloc narazil na zvláštní bug. Od jiné osoby byl upozorněn, že na Sparc64 platformě využívající malloc při kompilaci velkých C++ projektů dojde občas k selhání s interní chybou kompilátoru.
Začal tedy pátrat a objevil, že chyba je v yacc, parser generátoru vyvinutém Stephenem C. Johnsonem v AT&T, přičemž tento konkrétní kód se mu podařilo v historii Unixu vysledovat až do roku 1975, kdy byla na světě šestá edice tohoto OS. Na chybu přišel pouze díky tomu, že nový alokátor paměti využívá specifické techniky ošetření přetečení bufferu, vše přitom může nastat právě jen a pouze na Sparc64 systémech. Věkově tak tato 33 let stará chyba překonává v květnu odhalenou 25 starou chybu postihují všechny BSD systémy včetně derivátů jako Mac OS X. Tak schválně, kde jste byli vy v roce 1975? Já ještě na houbách :-D.