From bf7bad24ce141dab5b5acc3ffb98ce5fe4a8e0f9 Mon Sep 17 00:00:00 2001 From: Xie XiuQi Date: Wed, 21 Oct 2015 13:12:50 +0000 Subject: Fix 'No SMBIOS nor DMI entry point found' on SMBIOS3 address_from_efi may return a SMBIOS or SMBIOS3 format entry point, so add this condition. --- Index: trunk/AUTHORS =================================================================== --- trunk.orig/AUTHORS +++ trunk/AUTHORS @@ -19,6 +19,7 @@ Jarod Wilson Anton Arapov Roy Franz Tyler Bell +Xie XiuQi MANY THANKS TO (IN CHRONOLOGICAL ORDER) Werner Heuser Index: trunk/CHANGELOG =================================================================== --- trunk.orig/CHANGELOG +++ trunk/CHANGELOG @@ -1,3 +1,7 @@ +2015-10-21 Xie XiuQi + + * dmidecode.c: Handle SMBIOS 3.0 entry points on EFI systems. + 2015-10-01 Roy Franz * dmiopt.c: Add "--no-sysfs" option description to -h output. Index: trunk/dmidecode.c =================================================================== --- trunk.orig/dmidecode.c +++ trunk/dmidecode.c @@ -4864,8 +4864,16 @@ int main(int argc, char * const argv[]) goto exit_free; } - if (smbios_decode(buf, opt.devmem, 0)) - found++; + if (memcmp(buf, "_SM3_", 5) == 0) + { + if (smbios3_decode(buf, opt.devmem, 0)) + found++; + } + else if (memcmp(buf, "_SM_", 4) == 0) + { + if (smbios_decode(buf, opt.devmem, 0)) + found++; + } goto done; memory_scan: