diff options
author | Mattias Jacobsson | 2019-01-30 16:14:24 +0100 |
---|---|---|
committer | Darren Hart (VMware) | 2019-02-23 09:20:29 -0800 |
commit | c355ec651a8941864549f2586f969d0eb7bf499a (patch) | |
tree | f3a1d4abe6ced8d2420383ccdc326dc8148095f8 /drivers | |
parent | fd47a36fba257b91d4a0bdc2f94fe323e8819c2f (diff) |
platform/x86: wmi: fix potential null pointer dereference
In the function wmi_dev_match() the variable id is dereferenced without
first performing a NULL check. The variable can for example be NULL if
a WMI driver is registered without specifying the id_table field in
struct wmi_driver.
Add a NULL check and return that the driver can't handle the device if
the variable is NULL.
Fixes: 844af950da94 ("platform/x86: wmi: Turn WMI into a bus driver")
Signed-off-by: Mattias Jacobsson <2pi@mok.nu>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/platform/x86/wmi.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index bea35be68706..b0f3d8ecd898 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -768,6 +768,9 @@ static int wmi_dev_match(struct device *dev, struct device_driver *driver) struct wmi_block *wblock = dev_to_wblock(dev); const struct wmi_device_id *id = wmi_driver->id_table; + if (id == NULL) + return 0; + while (id->guid_string) { uuid_le driver_guid; |