Commit 789c1718 authored by Rand Deeb's avatar Rand Deeb Committed by Kalle Valo

ssb: Fix potential NULL pointer dereference in ssb_device_uevent()

The ssb_device_uevent() function first attempts to convert the 'dev' pointer
to 'struct ssb_device *'. However, it mistakenly dereferences 'dev' before
performing the NULL check, potentially leading to a NULL pointer
dereference if 'dev' is NULL.

To fix this issue, move the NULL check before dereferencing the 'dev' pointer,
ensuring that the pointer is valid before attempting to use it.

Found by Linux Verification Center (linuxtesting.org) with SVACE.
Signed-off-by: default avatarRand Deeb <rand.sec96@gmail.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
parent f1dfcee2
...@@ -341,11 +341,13 @@ static int ssb_bus_match(struct device *dev, struct device_driver *drv) ...@@ -341,11 +341,13 @@ static int ssb_bus_match(struct device *dev, struct device_driver *drv)
static int ssb_device_uevent(const struct device *dev, struct kobj_uevent_env *env) static int ssb_device_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
const struct ssb_device *ssb_dev = dev_to_ssb_dev(dev); const struct ssb_device *ssb_dev;
if (!dev) if (!dev)
return -ENODEV; return -ENODEV;
ssb_dev = dev_to_ssb_dev(dev);
return add_uevent_var(env, return add_uevent_var(env,
"MODALIAS=ssb:v%04Xid%04Xrev%02X", "MODALIAS=ssb:v%04Xid%04Xrev%02X",
ssb_dev->id.vendor, ssb_dev->id.coreid, ssb_dev->id.vendor, ssb_dev->id.coreid,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment