RE: [PATCH 07/12] platform/x86: dell-wmi-smbios: Use Dell WMI descriptor check

From: Mario.Limonciello
Date: Thu Sep 21 2017 - 16:56:10 EST


> -----Original Message-----
> From: Andy Shevchenko [mailto:andy.shevchenko@xxxxxxxxx]
> Sent: Thursday, September 21, 2017 11:44 AM
> To: Limonciello, Mario <Mario_Limonciello@xxxxxxxx>
> Cc: dvhart@xxxxxxxxxxxxx; LKML <linux-kernel@xxxxxxxxxxxxxxx>; Platform Driver
> <platform-driver-x86@xxxxxxxxxxxxxxx>; quasisec@xxxxxxxxxx; Pali RohÃr
> <pali.rohar@xxxxxxxxx>
> Subject: Re: [PATCH 07/12] platform/x86: dell-wmi-smbios: Use Dell WMI
> descriptor check
>
> On Thu, Sep 21, 2017 at 4:57 PM, Mario Limonciello
> <mario.limonciello@xxxxxxxx> wrote:
> > The Dell WMI descriptor check is used as an indication that WMI
> > calls are safe to run both when used with the notification
> > ASL/GUID pair as well as the SMBIOS calling ASL/GUID pair.
> >
> > As some code in dell-wmi-smbios is already a prerequisite for
> > dell-wmi, move the code for performing the descriptor check into
> > dell-wmi-smbios and let both drivers use it from there.
>
> > + desc_buffer = (u32 *)obj->buffer.pointer;
> > +
>
> > + if (desc_buffer[0] != 0x4C4C4544 && desc_buffer[1] != 0x494D5720)
>
> I was thinking about strncmp() here for a full line, though decide not
> to push it anyhow. Those IDs is binary data, can be anything and you
> have comment of what is expected here.
>
> But I think it would be nice to create a separate definitions and make
> comments there.
>
> > + dev_warn(&wdev->dev, "Dell descriptor buffer has invalid signature
> (%*ph)\n",
> > + 8, desc_buffer);
>
> %8ph ?
>
> > +
> > + if (desc_buffer[2] != 0 && desc_buffer[2] != 1)
> > + dev_warn(&wdev->dev, "Dell descriptor buffer has unknown version
> (%d)\n",
> > + desc_buffer[2]);
>
> %u ? u32 can't be negative and you basically allow it.
>
> > +
> > + if (desc_buffer[3] != 4096)
> > + dev_warn(&wdev->dev, "Dell descriptor buffer has invalid buffer length
> (%d)\n",
> > + desc_buffer[3]);
>
> Ditto.
>
>
> P.S. I noticed this all in old code, so, you can address my comments
> in a separate patch if you find them useful.
>

Yeah this is all old code. I've made some adjustments to it in v2 in a completely separate
patch that comes after the patch it's "moved". I'll submit back after other feedback
to this series.