Hibák mindig voltak és lesznek az egyes szoftverekben, hibamentes kódot nagyon nehéz írni. Ahogy a szoftver komplexitása nő, úgy nő a hibák száma is. Egy átlagos programozó, nagyjából 70 új bugot hoz létre 1000 sornyi kód leütésével, és kb 10-25 közé tehető az a mennyiség, amely a felhasználókig is eljuthat.
A hibák különböző súlyosságúak lehetnek, így némelyiket gyorsan kell javítani, más hibákat a programozó tud gyorsan megoldani. Ám előfordul, hogy egy-egy hibajegy évekig, évtizedekig nyitott marad, mert nem foglalkozik vele senki. Ezekből gyűjtöttem össze néhányat. Vannak olyanok, amelyeket megoldottak, ám lesz olyan is, amely még mai napig nem került javításra.
Amikor a programozó alig idősebb a hibánál

2023. októberében például a Firefox egyik 22 éve nyitott hibajegyéhez adtak be hivajavítást. A “tooltip ghost” nevezetű hibát még 2002 nyarán jelentették a Bugzilla felületén.
Bár maga a hiba nem súlyos, mégis bosszantó tud lenni, ha felüti a fejét. A hiba akkor jelentkezhet, ha a felhasználó egy eszköztári elem felé viszi a kurzorát, majd az ott megjelenő tooltip akkor is a helyén marad, ha közben a felhasználó a háttérbe küldi a böngészőt (pl leteszi a tálcára). Ekkor újra meg kellett nyitni a böngészőt, rávinni a kurzort a beragadt tooltiphez tartozó eszköztári elemre. Amikor eltűnt a felirat, újra be lehetett zárni a böngészőt.
A hibát végül egy 23 éves programozó Yifan Zhu oldotta meg, és a Firefox 119-es verziójával megkapta a nagyközönség is.
Honnan a fenéből kapom a sebzést?!
A Minecraft című játékhoz szintén 2023-ban érkezett egy hibajavítás, amelyben egy 2013 óta ismert hibát javítottak. A hiba az “infamous damage wobble” nevet viselte, amely akkor jelentkezett, ha a játékos sebzést kapott. Ekkor függetlenül a sebzés irányától balra hajolt a karakter. Így a játékos nem tudta behatárolni a sebzés irányát.
2017-ben a Team Fortress 2 című játékhoz is érkezett egy, a 2007-es megjelenés óta a játékban lévő hibát javító egysoros patch. Online multiplayer játéknál különösen fontosak a hitboxok és animációk, ezért is volt különösen idegesítő a játékosok számára ez a hiba. Ha a játékos egy adott játékmeneten belül többször változtatott karaktert, egy idő után a karakter és annak hitboxa nem volt szinkronban. Így a játékos akkor is sebzést kaphatott, ha látszólag el sem találták.
Megszaladtak a nullák
A World of Warcraft című játékban, a Wrath of the Lich King című kiegészítő óta lehetett egy hiba, amely a Val’anyr, Hammer of Ancient Kings tárgyat érintette. Ez egy olyan pajzs, amely a játék fejlesztőinek szándéka szerint 20 000 sebzést tudna elnyelni, de ehelyett 200 000 sebzést is kibírt. A kiegészítő 2008 november 13-án került a boltok polcaira, és egészen a WoW Classic érkezéséig nem tudtak a fejlesztők erről a hibáról.
Nem csak játék és mese
Nem csak játékoknál jellemző az évekre visszamenőleges hibajavítások eszközölése. 2015-ben a Microsoft egy 15 éves hibát javított, amely a Windows összes, 2000 után megjelent verzióját érintette. A hiba miatt sebezhetőek lettek a Windows verziók a Jasbug nevű sérülékenységre, amely során a számítógépek teljes fájlrendszere elérhető volt a hálózaton belüli más gépek számára.
Szintén a Microsoft-hoz kötődik egy másik hiba is, amely 19 év után került javításra, és távoli kódfuttatást tett lehetővé. A hibát az IBM fedezte fel, és megállapították, hogy a probléma egészen a Windows 95-ig visszavezethető. A Microsoft 2014-ben adott ki javítást rá.
A Python programozási nyelvben egy 15 éve megbújó hibát javítottak ki 2022-ben, amely 350 000 repository-t érintett. A hibát egy helytelenül meghívott tarfile.extract() függvény okozta, amely lehetőséget adott volna a támadóknak bármilyen kód futtatására.
Démoni nyomtató hiba

2020-ban fedeztek fel biztonsági szakértők egy elég súlyos hibát, amely a Windows nyomtatási mechanikájából adódott és már 1996 óta jelen lehetett a rendszerben, tehát 24 évig lappangott a Windows-ok kódjában. A hiba három tényező együttállásából adódott:
- a nem-adminisztrátori felhasználók hozzáadhatnak nyomtatókat
- nyomtatni fájlba is lehet, nem csak fizikai eszközre
- a kritikus pontokon a Windows nyomtatásért felelős alrendszere SYSTEM privilégiummal futnak
A hiba kihasználásával a hackerek rávehették a felhasználó rendszerét arra, hogy megadott rendszerindító DLL fájlokat felülírhassanak. A hibát az okozta, hogy a Microsoft mindig csak foltozta a nyomtatásért felelős alrendszert, a teljes újraírása helyett.
Ha azt vesszük, végülis egyenes
Néhány napja, 2024. június 10-én derült ki, hogy a népszerű 3D modellező szoftver viewportja, 0.8 fokkal meg volt dőlve a vízszinteshez képest, és ez már 14 éve, a Blender 2.5 óta benne van a szoftverben. Onnantól kezdve, hogy a hibát valaki észleli, egyszerűen nem tudja nem figyelmenkívül hagyni annyira látványos. Mégis csak keveseket zavart, és még kevesebben jelezték ezt a fejlesztőknek. Erről a hibáról még Andrew Price, a BlenderGuru készítője is csak a changelog-ból értesült.

Miután észrevetted, nem tudod figyelmenkívül hagyni, hogy a sárga téglalappal jelölt viewport picit csálén áll.
Bár valószínűleg nem kell milliónyi Blender projektet emiatt újrakezdeni, mindenesetre egy olyan modellező/tervező programban ahol milliméterek is számítanak, bizonyos esetekben érhette kellemetlen meglepetés a szoftver felhasználóit.
Ellenpélda is akad
Sajnos nem minden régóta porosodó hiba sorsa lesz happy end. Ott van például a MySQL #11742 hibajegye, amely 2005 óta nem került javításra, így idén lesz 18 éves. Ha jól értettem az a hiba, hogy az adatbázis triggerek nem futnak le, ha a tábla egy idegen kulcs művelet miatt frissül.
Természetesen ezeken kívül még számtalan régi hiba létezik a szoftverekben, vannak amikről tudunk, ez a szerencsésebb eset. Viszont valószínűleg több olyan hiba van, amiről még nem tudjuk, hogy léteznek egyáltalán.
Végül pedig egy Mr Robot idézettel búcsúznék.
“The bug forces the software to adapt, evolve into something new because of it. Work around it or work through it. No matter what, it changes. It becomes something new. The next version. The inevitable upgrade”.
Elliot Anderson