Eile mit Weile

33 Jahre alter Bug in Unix ausgemerzt

Ein OpenBSD-Entwickler hat einen uralten Bug in Unix entdeckt und ausgebessert, der sich bis zu AT&Ts Version im Jahre 1975 zurückverfolgen lässt.

Der Fehler betrifft den YACC Parser Generator und ist noch älter, als der vor kurzer Zeit entdeckte BSD-Bug (25 Jahre alt). Gefunden hat die Ungereimtheit der OpenBSD-Entwickler Otto Moerbeek beim testen einer neuen Implementierung von malloc (memory allocator). Beim Kompilieren großer C++-Projekte auf Sparc64-Hardware mit dem neuen malloc, schlug dieses Unterfangen manchmal mit einem internen „Compiler Error“ fehl.

Moerbeek fand heraus, dass sich der Fehler in YACC befindet. Dieser Parser Generator wurde von Stephen C. Johnson von AT&T entwickelt und befindet sich seit 1970 in UNIX. Moerbeek konnte den Fehler bis zur sechsten Edition von UNIX zurückverfolgen. Der neue malloc löste den Fehler aus, weil seine neuen Funktionen Buffer Overflows besser abfangen würden. Der Fehler tritt angeblich außerdem nur auf Sparc64-Plattormen auf. (jdo)