[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;