CodeSOD : Octets Magiques Note

CodeSOD : Octets Magiques

Les "octets magiques" font partie intégrante d'un en-tête de fichier, aidant à identifier le type de fichier. Par exemple, un fichier bitmap commence par "BM" et un fichier PGM commence par "PN". L'équipe de Christer travaillait sur un logiciel pour manipuler les types de fichiers CAD et avait besoin d'identifier quand un fichier était un fichier CAD mais pas un type de fichier UFF spécifique. Ils devaient vérifier que le fichier ne commençait pas par 0xabb0, 0xabb1 ou 0xabb3. Un collègue a écrit une vérification de validation mais a confondu les nombres hexadécimaux avec des chaînes de caractères, ce qui a conduit à des comparaisons incorrectes. Cette erreur a créé un nouveau système de numérotation sans sens où 0xABB0 et 0xabb0 étaient considérés comme différents. Cet exemple de code soulève des questions sur la relation entre les nombres hexadécimaux en majuscules et en minuscules, comme si 0xABB0 < 0xABB1 impliquait 0xABB0 < 0xabb1. Le code soulève également la question de savoir comment écrire un 3 en minuscule en hexadécimal.