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

From: Yang Zi

Date: Tue Aug 25 2026 - 05:18:18 EST


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 <2959243019@xxxxxx>
---
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;