RSS Der tägliche WTF
Folgen
CodeSOD: Magische Bytes
„Magische Bytes“ sind ein häufiger Bestandteil eines Dateiheaders und helfen dabei, den Dateityp zu identifizieren. Beispielsweise beginnt eine Bitmap-Datei mit „BM“ und eine PGM-Datei mit „PN“. Das Team von Christer arbeitete an einer Software zur Manipulation von CAD-Dateitypen und musste erkennen, wann es sich bei einer Datei um eine CAD-Datei handelte, aber nicht um einen bestimmten UFF-Dateityp. Sie mussten prüfen, ob die Datei nicht mit 0xabb0, 0xabb1 oder 0xabb3 begann. Ein Mitarbeiter schrieb eine Validierungsprüfung, verwechselte jedoch hexadezimale Zahlen mit Strings, was zu falschen Vergleichen führte. Dieser Fehler schuf ein neues, unsinniges Nummerierungssystem, bei dem 0xABB0 und 0xabb0 als unterschiedlich betrachtet wurden. Dieses Codebeispiel wirft Fragen zur Beziehung zwischen groß- und kleingeschriebenen hexadezimalen Zahlen auf, etwa ob 0xABB0 < 0xABB1 0xABB0 < 0xabb1 impliziert. Der Code wirft auch die Frage auf, wie man eine kleine 3 in Hexadezimal schreibt.