* [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@ 2024-12-06 9:32 jianqi.ren.cn
2024-12-06 17:11 ` Sasha Levin
2024-12-11 8:15 ` Greg KH
0 siblings, 2 replies; 14+ messages in thread
From: jianqi.ren.cn @ 2024-12-06 9:32 UTC (permalink / raw)
To: rand.sec96, gregkh; +Cc: stable
From: Rand Deeb <rand.sec96@gmail.com>
[ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
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: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
---
drivers/ssb/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index d52e91258e98..aae50a5dfb57 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -341,11 +341,13 @@ static int ssb_bus_match(struct device *dev, struct device_driver *drv)
static int ssb_device_uevent(struct device *dev, struct kobj_uevent_env *env)
{
- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
+ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
+ ssb_dev = dev_to_ssb_dev(dev);
+
return add_uevent_var(env,
"MODALIAS=ssb:v%04Xid%04Xrev%02X",
ssb_dev->id.vendor, ssb_dev->id.coreid,
--
2.25.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
2024-12-06 9:32 jianqi.ren.cn
@ 2024-12-06 17:11 ` Sasha Levin
2024-12-11 8:15 ` Greg KH
1 sibling, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-12-06 17:11 UTC (permalink / raw)
To: stable; +Cc: jianqi.ren.cn, Sasha Levin
[ Sasha's backport helper bot ]
Hi,
The upstream commit SHA1 provided is correct: 789c17185fb0f39560496c2beab9b57ce1d0cbe7
WARNING: Author mismatch between patch and upstream commit:
Backport author: <jianqi.ren.cn@windriver.com>
Commit author: Rand Deeb <rand.sec96@gmail.com>
Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: c5dc2d8eb398)
6.1.y | Not found
Note: The patch differs from the upstream commit:
---
1: 789c17185fb0f ! 1: 66fa3cdc05708 ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@@ Metadata
## Commit message ##
ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
+ [ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
+
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
@@ Commit message
Signed-off-by: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
+ Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
## drivers/ssb/main.c ##
@@ drivers/ssb/main.c: 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(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;
+- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
++ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y | Success | Success |
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@ 2024-12-09 6:33 jianqi.ren.cn
2024-12-09 14:35 ` Sasha Levin
0 siblings, 1 reply; 14+ messages in thread
From: jianqi.ren.cn @ 2024-12-09 6:33 UTC (permalink / raw)
To: rand.sec96, gregkh; +Cc: stable, m, linux-wireless, linux-kernel
From: Rand Deeb <rand.sec96@gmail.com>
[ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
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: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
---
drivers/ssb/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index d52e91258e98..aae50a5dfb57 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -341,11 +341,13 @@ static int ssb_bus_match(struct device *dev, struct device_driver *drv)
static int ssb_device_uevent(struct device *dev, struct kobj_uevent_env *env)
{
- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
+ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
+ ssb_dev = dev_to_ssb_dev(dev);
+
return add_uevent_var(env,
"MODALIAS=ssb:v%04Xid%04Xrev%02X",
ssb_dev->id.vendor, ssb_dev->id.coreid,
--
2.25.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
2024-12-09 6:33 [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent() jianqi.ren.cn
@ 2024-12-09 14:35 ` Sasha Levin
0 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-12-09 14:35 UTC (permalink / raw)
To: stable; +Cc: jianqi.ren.cn, Sasha Levin
[ Sasha's backport helper bot ]
Hi,
The upstream commit SHA1 provided is correct: 789c17185fb0f39560496c2beab9b57ce1d0cbe7
WARNING: Author mismatch between patch and upstream commit:
Backport author: <jianqi.ren.cn@windriver.com>
Commit author: Rand Deeb <rand.sec96@gmail.com>
Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: c5dc2d8eb398)
6.1.y | Not found
Note: The patch differs from the upstream commit:
---
1: 789c17185fb0f ! 1: eabfe79daed2a ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@@ Metadata
## Commit message ##
ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
+ [ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
+
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
@@ Commit message
Signed-off-by: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
+ Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
## drivers/ssb/main.c ##
@@ drivers/ssb/main.c: 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(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;
+- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
++ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y | Success | Success |
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
2024-12-06 9:32 jianqi.ren.cn
2024-12-06 17:11 ` Sasha Levin
@ 2024-12-11 8:15 ` Greg KH
1 sibling, 0 replies; 14+ messages in thread
From: Greg KH @ 2024-12-11 8:15 UTC (permalink / raw)
To: jianqi.ren.cn; +Cc: rand.sec96, stable
On Fri, Dec 06, 2024 at 05:32:56PM +0800, jianqi.ren.cn@windriver.com wrote:
> From: Rand Deeb <rand.sec96@gmail.com>
>
> [ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
Please cc: all relevant people on backports.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@ 2024-12-11 9:58 jianqi.ren.cn
2024-12-11 16:32 ` Sasha Levin
0 siblings, 1 reply; 14+ messages in thread
From: jianqi.ren.cn @ 2024-12-11 9:58 UTC (permalink / raw)
To: rand.sec96, gregkh; +Cc: kvalo, stable, m, linux-wireless, linux-kernel
From: Rand Deeb <rand.sec96@gmail.com>
[ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
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: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
---
drivers/ssb/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index d52e91258e98..aae50a5dfb57 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -341,11 +341,13 @@ static int ssb_bus_match(struct device *dev, struct device_driver *drv)
static int ssb_device_uevent(struct device *dev, struct kobj_uevent_env *env)
{
- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
+ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
+ ssb_dev = dev_to_ssb_dev(dev);
+
return add_uevent_var(env,
"MODALIAS=ssb:v%04Xid%04Xrev%02X",
ssb_dev->id.vendor, ssb_dev->id.coreid,
--
2.25.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@ 2024-12-11 10:15 jianqi.ren.cn
2024-12-11 16:32 ` Sasha Levin
0 siblings, 1 reply; 14+ messages in thread
From: jianqi.ren.cn @ 2024-12-11 10:15 UTC (permalink / raw)
To: rand.sec96, gregkh
Cc: patches, kvalo, stable, m, linux-wireless, linux-kernel
From: Rand Deeb <rand.sec96@gmail.com>
[ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
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: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
---
drivers/ssb/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index d52e91258e98..aae50a5dfb57 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -341,11 +341,13 @@ static int ssb_bus_match(struct device *dev, struct device_driver *drv)
static int ssb_device_uevent(struct device *dev, struct kobj_uevent_env *env)
{
- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
+ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
+ ssb_dev = dev_to_ssb_dev(dev);
+
return add_uevent_var(env,
"MODALIAS=ssb:v%04Xid%04Xrev%02X",
ssb_dev->id.vendor, ssb_dev->id.coreid,
--
2.25.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
2024-12-11 9:58 jianqi.ren.cn
@ 2024-12-11 16:32 ` Sasha Levin
0 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-12-11 16:32 UTC (permalink / raw)
To: stable; +Cc: jianqi.ren.cn, Sasha Levin
[ Sasha's backport helper bot ]
Hi,
The upstream commit SHA1 provided is correct: 789c17185fb0f39560496c2beab9b57ce1d0cbe7
WARNING: Author mismatch between patch and upstream commit:
Backport author: <jianqi.ren.cn@windriver.com>
Commit author: Rand Deeb <rand.sec96@gmail.com>
Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: c5dc2d8eb398)
6.1.y | Not found
Note: The patch differs from the upstream commit:
---
1: 789c17185fb0f ! 1: c1a673cbf296f ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@@ Metadata
## Commit message ##
ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
+ [ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
+
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
@@ Commit message
Signed-off-by: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
+ Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
## drivers/ssb/main.c ##
@@ drivers/ssb/main.c: 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(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;
+- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
++ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y | Success | Success |
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
2024-12-11 10:15 jianqi.ren.cn
@ 2024-12-11 16:32 ` Sasha Levin
0 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2024-12-11 16:32 UTC (permalink / raw)
To: stable; +Cc: jianqi.ren.cn, Sasha Levin
[ Sasha's backport helper bot ]
Hi,
The upstream commit SHA1 provided is correct: 789c17185fb0f39560496c2beab9b57ce1d0cbe7
WARNING: Author mismatch between patch and upstream commit:
Backport author: <jianqi.ren.cn@windriver.com>
Commit author: Rand Deeb <rand.sec96@gmail.com>
Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: c5dc2d8eb398)
6.1.y | Not found
Note: The patch differs from the upstream commit:
---
1: 789c17185fb0f ! 1: 4a4a333f41731 ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@@ Metadata
## Commit message ##
ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
+ [ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
+
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
@@ Commit message
Signed-off-by: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
+ Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
## drivers/ssb/main.c ##
@@ drivers/ssb/main.c: 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(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;
+- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
++ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y | Success | Success |
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@ 2025-01-23 8:35 Imkanmod Khan
2025-01-23 20:57 ` Sasha Levin
0 siblings, 1 reply; 14+ messages in thread
From: Imkanmod Khan @ 2025-01-23 8:35 UTC (permalink / raw)
To: stable
Cc: patches, kvalo, rand.sec96, m, linux-wireless, linux-kernel,
Imkanmod Khan
From: Rand Deeb <rand.sec96@gmail.com>
[ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
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: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
Signed-off-by: Imkanmod Khan <imkanmodkhan@gmail.com>
---
drivers/ssb/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index d52e91258e98..aae50a5dfb57 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -341,11 +341,13 @@ static int ssb_bus_match(struct device *dev, struct device_driver *drv)
static int ssb_device_uevent(struct device *dev, struct kobj_uevent_env *env)
{
- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
+ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
+ ssb_dev = dev_to_ssb_dev(dev);
+
return add_uevent_var(env,
"MODALIAS=ssb:v%04Xid%04Xrev%02X",
ssb_dev->id.vendor, ssb_dev->id.coreid,
--
2.25.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
2025-01-23 8:35 Imkanmod Khan
@ 2025-01-23 20:57 ` Sasha Levin
0 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2025-01-23 20:57 UTC (permalink / raw)
To: stable; +Cc: Imkanmod Khan, Sasha Levin
[ Sasha's backport helper bot ]
Hi,
The upstream commit SHA1 provided is correct: 789c17185fb0f39560496c2beab9b57ce1d0cbe7
WARNING: Author mismatch between patch and upstream commit:
Backport author: Imkanmod Khan<imkanmodkhan@gmail.com>
Commit author: Rand Deeb<rand.sec96@gmail.com>
Status in newer kernel trees:
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: c5dc2d8eb398)
6.1.y | Not found
Note: The patch differs from the upstream commit:
---
1: 789c17185fb0f ! 1: 53b764260405d ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@@ Metadata
## Commit message ##
ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
+ [ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
+
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
@@ Commit message
Signed-off-by: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
+ Signed-off-by: Imkanmod Khan <imkanmodkhan@gmail.com>
## drivers/ssb/main.c ##
@@ drivers/ssb/main.c: 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(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;
+- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
++ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y | Success | Success |
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@ 2025-02-24 8:37 jianqi.ren.cn
2025-02-24 12:38 ` Sasha Levin
2025-02-24 12:54 ` Greg KH
0 siblings, 2 replies; 14+ messages in thread
From: jianqi.ren.cn @ 2025-02-24 8:37 UTC (permalink / raw)
To: stable
Cc: patches, kvalo, rand.sec96, gregkh, m, linux-wireless,
linux-kernel, zhe.he
From: Rand Deeb <rand.sec96@gmail.com>
[ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
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: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
Verified the build test.
---
drivers/ssb/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index d52e91258e98..aae50a5dfb57 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -341,11 +341,13 @@ static int ssb_bus_match(struct device *dev, struct device_driver *drv)
static int ssb_device_uevent(struct device *dev, struct kobj_uevent_env *env)
{
- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
+ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
+ ssb_dev = dev_to_ssb_dev(dev);
+
return add_uevent_var(env,
"MODALIAS=ssb:v%04Xid%04Xrev%02X",
ssb_dev->id.vendor, ssb_dev->id.coreid,
--
2.25.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
2025-02-24 8:37 jianqi.ren.cn
@ 2025-02-24 12:38 ` Sasha Levin
2025-02-24 12:54 ` Greg KH
1 sibling, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2025-02-24 12:38 UTC (permalink / raw)
To: stable; +Cc: jianqi.ren.cn, Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 789c17185fb0f39560496c2beab9b57ce1d0cbe7
WARNING: Author mismatch between patch and upstream commit:
Backport author: <jianqi.ren.cn@windriver.com>
Commit author: Rand Deeb<rand.sec96@gmail.com>
Status in newer kernel trees:
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: c5dc2d8eb398)
Note: The patch differs from the upstream commit:
---
1: 789c17185fb0f ! 1: d56063aab85ca ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
@@ Metadata
## Commit message ##
ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
+ [ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
+
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
@@ Commit message
Signed-off-by: Rand Deeb <rand.sec96@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
+ Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
+ Signed-off-by: He Zhe <zhe.he@windriver.com>
## drivers/ssb/main.c ##
@@ drivers/ssb/main.c: 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(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;
+- struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
++ struct ssb_device *ssb_dev;
if (!dev)
return -ENODEV;
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y | Success | Success |
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
2025-02-24 8:37 jianqi.ren.cn
2025-02-24 12:38 ` Sasha Levin
@ 2025-02-24 12:54 ` Greg KH
1 sibling, 0 replies; 14+ messages in thread
From: Greg KH @ 2025-02-24 12:54 UTC (permalink / raw)
To: jianqi.ren.cn
Cc: stable, patches, kvalo, rand.sec96, m, linux-wireless,
linux-kernel, zhe.he
On Mon, Feb 24, 2025 at 04:37:07PM +0800, jianqi.ren.cn@windriver.com wrote:
> From: Rand Deeb <rand.sec96@gmail.com>
>
> [ Upstream commit 789c17185fb0f39560496c2beab9b57ce1d0cbe7 ]
>
> 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: Rand Deeb <rand.sec96@gmail.com>
> Signed-off-by: Kalle Valo <kvalo@kernel.org>
> Link: https://msgid.link/20240306123028.164155-1-rand.sec96@gmail.com
> Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
> Signed-off-by: He Zhe <zhe.he@windriver.com>
> ---
> Verified the build test.
> ---
> drivers/ssb/main.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
> index d52e91258e98..aae50a5dfb57 100644
> --- a/drivers/ssb/main.c
> +++ b/drivers/ssb/main.c
> @@ -341,11 +341,13 @@ static int ssb_bus_match(struct device *dev, struct device_driver *drv)
>
> static int ssb_device_uevent(struct device *dev, struct kobj_uevent_env *env)
> {
> - struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
> + struct ssb_device *ssb_dev;
>
> if (!dev)
> return -ENODEV;
>
> + ssb_dev = dev_to_ssb_dev(dev);
This patch does nothing, sorry. It's impossible for dev to be null so
no need to verify this and I guess I'll go reject the cve that was
assigned to it as well as it's pointless.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-02-24 12:54 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-09 6:33 [PATCH 6.1.y] ssb: Fix potential NULL pointer dereference in ssb_device_uevent() jianqi.ren.cn
2024-12-09 14:35 ` Sasha Levin
-- strict thread matches above, loose matches on Subject: below --
2025-02-24 8:37 jianqi.ren.cn
2025-02-24 12:38 ` Sasha Levin
2025-02-24 12:54 ` Greg KH
2025-01-23 8:35 Imkanmod Khan
2025-01-23 20:57 ` Sasha Levin
2024-12-11 10:15 jianqi.ren.cn
2024-12-11 16:32 ` Sasha Levin
2024-12-11 9:58 jianqi.ren.cn
2024-12-11 16:32 ` Sasha Levin
2024-12-06 9:32 jianqi.ren.cn
2024-12-06 17:11 ` Sasha Levin
2024-12-11 8:15 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox