[PATCH] dmi: dmicheck: add more checks for invalid DMI fields (LP: #1262236)

Colin King colin.king at canonical.com
Tue Jan 7 10:59:45 UTC 2014


From: Colin Ian King <colin.king at canonical.com>

There are a lot of weird and wonderful invalid DMI fields that
should be checked for in the dmicheck.  I've scanned thousands of
bug reports for invalid fields and added them to the dmicheck tests.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/dmi/dmicheck/dmicheck.c | 103 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 103 insertions(+)

diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c
index f73d6f6..c6a3151 100644
--- a/src/dmi/dmicheck/dmicheck.c
+++ b/src/dmi/dmicheck/dmicheck.c
@@ -84,16 +84,119 @@ typedef struct {
 	uint8_t	offset;
 } fwts_dmi_used_by_kernel;
 
+/*
+ *  Table derived by scanning thousands of DMI table dumps from bug reports
+ */
 static const fwts_dmi_pattern dmi_patterns[] = {
+	{ "DMISerialNumber",	"Serial Number",	"0000000" },
+	{ "DMISerialNumber",	"Serial Number",	"00000000" },
+	{ "DMISerialNumber",	"Serial Number",	"000000000" },
+	{ "DMISerialNumber",	"Serial Number",	"0000000000" },
+	{ "DMISerialNumber",	"Serial Number",	"0x00000000" },
+	{ "DMISerialNumber",	"Serial Number",	"0x0000000000000000" },
+	{ "DMISerialNumber",	"Serial Number",	"012345678" },
 	{ "DMISerialNumber",	"Serial Number",	"0123456789" },
+	{ "DMISerialNumber",	"Serial Number",	"01234567890" },
+	{ "DMISerialNumber",	"Serial Number",	"012345678900" },
+	{ "DMISerialNumber",	"Serial Number",	"0123456789000" },
 	{ "DMISerialNumber",	"Serial Number",	"System Serial Number" },
 	{ "DMISerialNumber",	"Serial Number",	"MB-1234567890" },
+	{ "DMISerialNumber",	"Serial Number",	"NB-1234567890" },
+	{ "DMISerialNumber",	"Serial Number",	"NB-0123456789" },
+	{ "DMISerialNumber",	"Serial Number",	"Base Board Serial Number" },
+	{ "DMISerialNumber",	"Serial Number",	"Chassis Serial Number" },
+	{ "DMISerialNumber",	"Serial Number",	"<cut out>" },
+	{ "DMISerialNumber",	"Serial Number",	"Empty" },
+	{ "DMISerialNumber",	"Serial Number",	"[Empty]" },
+	{ "DMISerialNumber",	"Serial Number",	"NA" },
+	{ "DMISerialNumber",	"Serial Number",	"N/A" },
+	{ "DMISerialNumber",	"Serial Number",	"None" },
+	{ "DMISerialNumber",	"Serial Number",	"None1" },
+	{ "DMISerialNumber",	"Serial Number",	"Not Available" },
+	{ "DMISerialNumber",	"Serial Number",	"Not Specified" },
+	{ "DMISerialNumber",	"Serial Number",	"NotSupport" },
+	{ "DMISerialNumber",	"Serial Number",	"Not Supported by CPU" },
+	{ "DMISerialNumber",	"Serial Number",	"Not Supported" },
+	{ "DMISerialNumber",	"Serial Number",	"OEM Chassis Serial Number" },
+	{ "DMISerialNumber",	"Serial Number",	"OEM_Define1" },
+	{ "DMISerialNumber",	"Serial Number",	"OEM_Define2" },
+	{ "DMISerialNumber",	"Serial Number",	"OEM_Define3" },
+	{ "DMISerialNumber",	"Serial Number",	"SerNum0" },
+	{ "DMISerialNumber",	"Serial Number",	"SerNum00" },
+	{ "DMISerialNumber",	"Serial Number",	"SerNum01" },
+	{ "DMISerialNumber",	"Serial Number",	"SerNum02" },
+	{ "DMISerialNumber",	"Serial Number",	"SerNum03" },
+	{ "DMISerialNumber",	"Serial Number",	"SerNum1" },
+	{ "DMISerialNumber",	"Serial Number",	"SerNum2" },
+	{ "DMISerialNumber",	"Serial Number",	"SerNum3" },
+	{ "DMISerialNumber",	"Serial Number",	"SerNum4" },
+	{ "DMISerialNumber",	"Serial Number",	"TBD by ODM" },
+	{ "DMISerialNumber",	"Serial Number",	"To Be Defined By O.E.M" },
+	{ "DMISerialNumber",	"Serial Number",	"To be filled by O.E.M." },
+	{ "DMISerialNumber",	"Serial Number",	"To Be Filled By O.E.M." },
+	{ "DMISerialNumber",	"Serial Number",	"Unknow" },
+	{ "DMISerialNumber",	"Serial Number",	"Unknown" },
+	{ "DMISerialNumber",	"Serial Number",	"XXXXXXXXXXXX" },
+	{ "DMISerialNumber",	"Serial Number",	"XXXXXXXXXXX" },
+	{ "DMISerialNumber",	"Serial Number",	"XXXXXXXXXX" },
+	{ "DMISerialNumber",	"Serial Number",	"XXXXXXXXX" },
+	{ "DMISerialNumber",	"Serial Number",	"XXXXXXXX" },
+	{ "DMISerialNumber",	"Serial Number",	"XXXXXX" },
+	{ "DMISerialNumber",	"Serial Number",	"XXXXX" },
 	{ "DMISerialNumber",	NULL,			"Chassis Serial Number" },
+	{ "DMIAssetTag",	"Asset Tag",		"0000000000" },
+	{ "DMIAssetTag",	"Asset Tag",		"0x00000000" },
 	{ "DMIAssetTag",	"Asset Tag",		"1234567890" },
+	{ "DMIAssetTag",	"Asset Tag",		"123456789000" },
+	{ "DMIAssetTag",	"Asset Tag",		"9876543210" },
+	{ "DMIAssetTag",	"Asset Tag",		"A1_AssetTagNum0" },
+	{ "DMIAssetTag",	"Asset Tag",		"A1_AssetTagNum1" },
+	{ "DMIAssetTag",	"Asset Tag",		"A1_AssetTagNum2" },
+	{ "DMIAssetTag",	"Asset Tag",		"A1_AssetTagNum3" },
+	{ "DMIAssetTag",	"Asset Tag",		"ABCDEFGHIJKLM" },
 	{ "DMIAssetTag",	"Asset Tag",		"Asset-1234567890" },
+	{ "DMIAssetTag",	"Asset Tag",		"Asset Tag" },
+	{ "DMIAssetTag",	"Asset Tag",		"Asset Tag:" },
+	{ "DMIAssetTag",	"Asset Tag",		"AssetTagNum0" },
+	{ "DMIAssetTag",	"Asset Tag",		"AssetTagNum1" },
+	{ "DMIAssetTag",	"Asset Tag",		"AssetTagNum2" },
+	{ "DMIAssetTag",	"Asset Tag",		"AssetTagNum3" },
+	{ "DMIAssetTag",	"Asset Tag",		"AssetTagNum4" },
+	{ "DMIAssetTag",	"Asset Tag",		"Asset tracking" },
+	{ "DMIAssetTag",	"Asset Tag",		"ATN12345678901234567" },
+	{ "DMIAssetTag",	"Asset Tag",		"Base Board Asset Tag#" },
+	{ "DMIAssetTag",	"Asset Tag",		"Base Board Asset Tag" },
+	{ "DMIAssetTag",	"Asset Tag",		"Chassis Asset Tag" },
+	{ "DMIAssetTag",	"Asset Tag",		"<cut out>" },
+	{ "DMIAssetTag",	"Asset Tag",		"Fill By OEM" },
+	{ "DMIAssetTag",	"Asset Tag",		"N/A" },
+	{ "DMIAssetTag",	"Asset Tag",		"No Asset Information" },
+	{ "DMIAssetTag",	"Asset Tag",		"No Asset Tag" },
+	{ "DMIAssetTag",	"Asset Tag",		"None" },
+	{ "DMIAssetTag",	"Asset Tag",		"Not Available" },
+	{ "DMIAssetTag",	"Asset Tag",		"Not Specified" },
+	{ "DMIAssetTag",	"Asset Tag",		"OEM_Define0" },
+	{ "DMIAssetTag",	"Asset Tag",		"OEM_Define1" },
+	{ "DMIAssetTag",	"Asset Tag",		"OEM_Define2" },
+	{ "DMIAssetTag",	"Asset Tag",		"OEM_Define3" },
+	{ "DMIAssetTag",	"Asset Tag",		"OEM_Define4" },
+	{ "DMIAssetTag",	"Asset Tag",		"TBD by ODM" },
+	{ "DMIAssetTag",	"Asset Tag",		"To Be Defined By O.E.M" },
+	{ "DMIAssetTag",	"Asset Tag",		"To be filled by O.E.M." },
+	{ "DMIAssetTag",	"Asset Tag",		"To Be Filled By O.E.M." },
+	{ "DMIAssetTag",	"Asset Tag",		"Unknown" },
+	{ "DMIAssetTag",	"Asset Tag",		"XXXXXXXXXXXX" },
+	{ "DMIAssetTag",	"Asset Tag",		"XXXXXXXXXXX" },
+	{ "DMIAssetTag",	"Asset Tag",		"XXXXXXXXXX" },
+	{ "DMIAssetTag",	"Asset Tag",		"XXXXXXXXX" },
+	{ "DMIAssetTag",	"Asset Tag",		"XXXXXXXX" },
+	{ "DMIAssetTag",	"Asset Tag",		"XXXXXXX" },
+	{ "DMIAssetTag",	"Asset Tag",		"XXXXXX" },
 	{ "DMIChassisVendor",	NULL,			"Chassis Manufacture" },
 	{ "DMIChassisVersion",	NULL,			"Chassis Version" },
 	{ "DMIProductVersion",	NULL,			"System Version" },
+	{ "DMIBadDefault",	NULL,			"To Be Defined By O.E.M" },
+	{ "DMIBadDefault",	NULL,			"To be filled by O.E.M." },
 	{ "DMIBadDefault",	NULL,			"To Be Filled By O.E.M." },
 	{ NULL,			NULL,			NULL }
 };
-- 
1.8.5.2




More information about the fwts-devel mailing list