aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/smbios
diff options
context:
space:
mode:
authorOlivier Certner <olce@FreeBSD.org>2025-03-03 09:16:14 +0000
committerOlivier Certner <olce@FreeBSD.org>2025-03-07 16:42:46 +0000
commitf6cbd6b6d2ccd672e4807128ce0d07db333d4335 (patch)
tree5b0d7c722a425b5e40cf2bcb729192d40bf67931 /sys/dev/smbios
parent3907feff7ab732b918ba3f5993e7a6718fffea14 (diff)
Diffstat (limited to 'sys/dev/smbios')
-rw-r--r--sys/dev/smbios/smbios.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/sys/dev/smbios/smbios.c b/sys/dev/smbios/smbios.c
index 9e942335e985..733384b3614e 100644
--- a/sys/dev/smbios/smbios.c
+++ b/sys/dev/smbios/smbios.c
@@ -141,14 +141,13 @@ smbios_identify (driver_t *driver, device_t parent)
}
}
if (length != map_size) {
- u_int8_t major, minor;
-
- major = eps->major_version;
- minor = eps->minor_version;
-
- /* SMBIOS v2.1 implementation might use 0x1e. */
- if (length == 0x1e && major == 2 && minor == 1)
- length = 0x1f;
+ /*
+ * SMBIOS v2.1 implementations might use 0x1e because the
+ * standard was then erroneous.
+ */
+ if (length == 0x1e && map_size == sizeof(*eps) &&
+ eps->major_version == 2 && eps->minor_version == 1)
+ length = map_size;
else
goto unmap_return;
}