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@xxxxxxxxxxxxxxx> 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@xxxxxxxxx> > > --- > > 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. >