[PATCH] iio: proximity: sx9310: fix NULL pointer dereference in sx9310_check_whoami

Yang Zi <[email protected]>
Newsgroups org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
device_get_match_data() can return NULL, e.g. when the device is matched
through the I2C device ID table rather than the OF/ACPI match tables. In
that case sx9310_check_whoami() dereferences a NULL pointer when reading
ddata->whoami.

Return -ENODEV if no match data is found to avoid the NULL pointer
dereference.

Signed-off-by: Yang Zi <[email protected]>
---
diff --git a/drivers/iio/proximity/sx9310.c b/drivers/iio/proximity/sx9310.c
index 79ba46d8a0aa..305b41f2847d 100644
--- a/drivers/iio/proximity/sx9310.c
+++ b/drivers/iio/proximity/sx9310.c
@@ -892,6 +892,8 @@ static int sx9310_check_whoami(struct device *dev,
         return ret;
 
     ddata = device_get_match_data(dev);
+    if (!ddata)
+        return -ENODEV;
     if (ddata->whoami != whoami)
         return -ENODEV;
 
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.