diff -up dmidecode-2.11/CHANGELOG.dmidecode_fix dmidecode-2.11/CHANGELOG --- dmidecode-2.11/CHANGELOG.dmidecode_fix 2012-03-12 10:25:01.980020072 +0100 +++ dmidecode-2.11/CHANGELOG 2012-03-12 10:25:20.123020332 +0100 @@ -1,3 +1,8 @@ +2011-11-18 Jean Delvare + + * dmidecode.c: Properly print the hexadecimal value of invalid + string characters. + 2011-11-14 Anton Arapov * dmidecode.c: Make dmi_chassis_type aware of the lock bit. diff -up dmidecode-2.11/dmidecode.c.dmidecode_fix dmidecode-2.11/dmidecode.c --- dmidecode-2.11/dmidecode.c.dmidecode_fix 2012-03-12 10:25:11.261020199 +0100 +++ dmidecode-2.11/dmidecode.c 2012-03-12 10:25:20.124020332 +0100 @@ -197,7 +197,7 @@ static void dmi_dump(const struct dmi_he printf("%s\t", prefix); for (j = 0; j < 16 && j < l - (row << 4); j++) printf("%s%02X", j ? " " : "", - s[(row << 4) + j]); + (unsigned char)s[(row << 4) + j]); printf("\n"); } /* String isn't filtered yet so do it now */