Re: + dmi_scan-fix-missing-check-for-_dmi_-signature-in-smbios_present.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2013-03-06 at 16:07 +0800, Zhenzhong Duan wrote:
> On 2013-03-06 07:37, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
[...]
> > 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().
[...]
> > --- 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.
[...]

I don't know how I ended up sending this broken version rather than what
I actually tested.  Sorry about that.

Ben.

-- 
Ben Hutchings
Always try to do things in chronological order;
it's less confusing that way.

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]