On 2013-03-06 07:37, akpm@xxxxxxxxxxxxxxxxxxxx wrote: > The patch titled > Subject: dmi_scan: fix missing check for _DMI_ signature in smbios_present() > has been added to the -mm tree. Its filename is > dmi_scan-fix-missing-check-for-_dmi_-signature-in-smbios_present.patch > > Before you just go and hit "reply", please: > a) Consider who else should be cc'ed > b) Prefer to cc a suitable mailing list as well > c) Ideally: find the original patch on the mailing list and do a > reply-to-all to that, adding suitable additional cc's > > *** Remember to use Documentation/SubmitChecklist when testing your code *** > > The -mm tree is included into linux-next and is updated > there every 3-4 working days > > ------------------------------------------------------ > From: Ben Hutchings <ben@xxxxxxxxxxxxxxx> > Subject: dmi_scan: fix missing check for _DMI_ signature in smbios_present() > > Commit 9f9c9cbb6057 ('drivers/firmware/dmi_scan.c: fetch dmi version from > SMBIOS if it exists') hoisted the check for "_DMI_" into > dmi_scan_machine(), which means that we don't bother to check for "_DMI_" > at offset 16 in an SMBIOS entry. smbios_present() may also call > dmi_present() for an address where we found "_SM_", if it failed further > validation. > > Check for "_DMI_" in smbios_present() before calling dmi_present(). > > Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> > Reported-by: Tim McGrath <tmhikaru@xxxxxxxxx> > Tested-by: Tim Mcgrath <tmhikaru@xxxxxxxxx> > Cc: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > --- > > drivers/firmware/dmi_scan.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff -puN drivers/firmware/dmi_scan.c~dmi_scan-fix-missing-check-for-_dmi_-signature-in-smbios_present drivers/firmware/dmi_scan.c > --- a/drivers/firmware/dmi_scan.c~dmi_scan-fix-missing-check-for-_dmi_-signature-in-smbios_present > +++ a/drivers/firmware/dmi_scan.c > @@ -442,7 +442,6 @@ static int __init dmi_present(const char > static int __init smbios_present(const char __iomem *p) > { > u8 buf[32]; > - int offset = 0; > > memcpy_fromio(buf, p, 32); > if ((buf[5] < 32) && dmi_checksum(buf, buf[5])) { > @@ -461,9 +460,9 @@ static int __init smbios_present(const c > dmi_ver = 0x0206; > break; > } > - offset = 16; > + return memcmp(q + 16, "_DMI_", 5) || dmi_present(p + 16); > } I remember H.J found a typo in this patch and the following patch. >The patch has a typo: > >- offset = 16; >+ return memcmp(q + 16, "_DMI_", 5) || dmi_present(p + 16); > } > >'q' isn't defined here. Change it to `p" also fixes the problem for me. > >H.J. > - return dmi_present(buf + offset); > + return 1; > } > > void __init dmi_scan_machine(void) > _ > > Patches currently in -mm which might be from ben@xxxxxxxxxxxxxxx are > > linux-next.patch > dmi_scan-fix-missing-check-for-_dmi_-signature-in-smbios_present.patch > dmi_scan-refactor-dmi_scan_machine-smbiosdmi_present.patch > -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html