Infidel enthält einen jahrzehntelang unentdeckten Speicherkorruptions-Bug
Infidel Goes Wild
Beim Durchspielen von Infidels mit einem Debugger entdeckte ich einen wilden Zeigerfehler: Die Routine DESERT-TO-TABLE initialisiert eine Array-Adresse mit dem Index einer globalen Variable statt mit ihrer Adresse. Dadurch werden Objekte in den Z-machine-Header geschrieben, was zu absurden Texten und sogar Abstürzen führt. Der Bug blieb jahrzehntelang unentdeckt, weil niemand mehr als acht Gegenstände in der endlosen Wüste fallen ließ.
Als C-Programmierer bin ich gesetzlich verpflichtet, Speicherkorruption als die schlimmste aller möglichen Sünden zu betrachten.