[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CALGdzuoWo+sT5ShVRpY6Q0R=5GOBvbOY10hyvUeT8DL9vsSj3w@mail.gmail.com>
Date: Fri, 14 Mar 2025 11:29:01 -0500
From: Chenyuan Yang <chenyuan0y@...il.com>
To: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>
Cc: W_Armin@....de, Hans de Goede <hdegoede@...hat.com>,
platform-driver-x86@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] platform/x86: wmi: Add Null check for device
Hi Ilpo,
Thanks for pointing this out.
This was found by our static analyzer.
Sorry that the checker didn't make further reasoning.
-Chenyuan
On Fri, Mar 14, 2025 at 6:41 AM Ilpo Järvinen
<ilpo.jarvinen@...ux.intel.com> wrote:
>
> On Thu, 13 Mar 2025, Chenyuan Yang wrote:
>
> Hi,
>
> Could you please be consistent in style and write "NULL" also in the
> shortlog in the subject.
>
> > Not all devices have an ACPI companion fwnode, so device might be NULL.
> > This is similar to the commit cd2fd6eab480
> > ("platform/x86: int3472: Check for adev == NULL").
>
> Please fold the paragraph normally.
>
> > Add a check for device not being set and return -ENODEV in that case to
> > avoid a possible NULL pointer deref in parse_wdg().
> >
> > Note, acpi_wmi_probe() under the same file has such a check.
>
> Hmm, is this a bogus fix, as parse_wdg() is only called from
> acpi_wmi_probe() so how can ACPI companion turn NULL in between??
>
> How was this problem found??
>
> > Signed-off-by: Chenyuan Yang <chenyuan0y@...il.com>
> > ---
> > drivers/platform/x86/wmi.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
> > index 646370bd6b03..54e697838c1e 100644
> > --- a/drivers/platform/x86/wmi.c
> > +++ b/drivers/platform/x86/wmi.c
> > @@ -1091,6 +1091,9 @@ static int parse_wdg(struct device *wmi_bus_dev, struct platform_device *pdev)
> > u32 i, total;
> > int retval;
> >
> > + if (!device)
> > + return -ENODEV;
> > +
> > status = acpi_evaluate_object(device->handle, "_WDG", NULL, &out);
> > if (ACPI_FAILURE(status))
> > return -ENXIO;
> >
>
> --
> i.
>
Powered by blists - more mailing lists