x86/DMI: fix SMBIOS pointer range check
authorJan Beulich <JBeulich@suse.com>
Tue, 1 Dec 2020 14:33:57 +0000 (15:33 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 1 Dec 2020 14:33:57 +0000 (15:33 +0100)
Forever since its introduction this has been using an inverted relation
operator.

Fixes: 54057a28f22b ("x86: support SMBIOS v3")
Signed-off-by: Jan Beulich <JBeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 6befe598706218673b14710d90d00ce90763b372
master date: 2020-11-24 11:25:29 +0100

xen/arch/x86/dmi_scan.c

index d24da1c53af81566a9fafc98eabfb388b39d14ec..e5930d27eaf1bf3acaa94a3d26e237e94bbed8f4 100644 (file)
@@ -357,7 +357,7 @@ static int __init dmi_iterate(void (*decode)(struct dmi_header *))
                        memcpy_fromio(&smbios3, q, sizeof(smbios3));
                        if (memcmp(smbios3.anchor, "_SM3_", 5) ||
                            smbios3.length < sizeof(smbios3) ||
-                           q < p + 0x10000 - smbios3.length ||
+                           q > p + 0x10000 - smbios3.length ||
                            !dmi_checksum(q, smbios3.length))
                                smbios3.length = 0;
                }