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.Please fold the paragraph normally.
This is similar to the commit cd2fd6eab480
("platform/x86: int3472: Check for adev == NULL").
Add a check for device not being set and return -ENODEV in that case toHmm, is this a bogus fix, as parse_wdg() is only called from
avoid a possible NULL pointer deref in parse_wdg().
Note, acpi_wmi_probe() under the same file has such a check.
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.