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

IvanHu ivan.hu at canonical.com
Thu Jan 9 06:16:07 UTC 2014


On 01/07/2014 06:59 PM, Colin King wrote:
> 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 }
>   };
>

Acked-by: Ivan Hu <ivan.hu at canonical.com>



More information about the fwts-devel mailing list