OpenBSD-bug uit 1975 nu gefixt

14-07-2008 14:18 | Door Jasper Bakker | Lees meer artikelen over: Unix | Lees meer over het bedrijf: AT&T | Er zijn nog geen reacties op dit artikel | Permalink

De eerste bug was een echte; een mot die in 1945 een mainframe 'saboteerde'.

De eerste bug was een echte; een mot die in 1945 een mainframe 'saboteerde'.

Fouten in software kunnen lang bestaan. Unix-variant OpenBSD lijkt nu een nieuw record te hebben: een drieëndertig jaar oude bug is nu gerepareerd.

De Nederlandse OpenBSD-ontwikkelaar Otto Moerbeek heeft een bug in besturingssysteem OpenBSD gevonden en gerepareerd. De fout bleek al aanwezig te zijn in oudere versies van die Unix-variant, tot aan de Sixth Edition Unix-versie uit 1975 van AT&T. In mei dit jaar is al een vijfentwintig jaar oude Unix-bug ontdekt en gefixt. Die bleek te zitten in Mac OS X, wat Apple heeft gebaseerd op de FreeBSD-variant.

Compiler compiler

De nu voor het eerst ontdekte bug betreft de parser generator YACC (yet another compiler compiler). Dat stuk software maakt een parser aan, wat een compiler-onderdeel is dat broncode omzet in uitvoerbare code voor een specifiek hardwareplatform. YACC is al sinds begin jaren zeventig onderdeel van OpenBSD en is oorspronkelijk ontwikkeld door toenmalig AT&T-werknemer Stephen Johnson.

Moerbeek trof de bug aan toen hij een door hem ontwikkelde nieuwe implementatie testte van geheugentoewijzer (memory allocator) malloc. Het compileren van grote C++ projecten bleek soms vast te lopen. De OpenBSD-ontwikkelaar testte zijn software hij op een computer met Sun Microsystems' Sparc64-processoren, waar deze bug alleen maar kan voorkomen. De fout is al die tijd niet bovengekomen doordat oudere versies van malloc niet zo goed waren in het opvangen van buffer overflows.

Top 10 Reagerende members
  Aantal reacties
met 3+ sterren
Gemiddelde
waardering
Klik voor meer info1 154 6.4
Klik voor meer info2 120 6.7
Klik voor meer info3 109 6.4
Klik voor meer info4 79 6.6
Klik voor meer info5 53 6.1
Klik voor meer info6 49 6.3
Klik voor meer info7 47 6.5
Klik voor meer info8 43 6.1
Klik voor meer info9 43 6.0
Klik voor meer info10 40 6.3