Skip to contentSkip to conversation

vme: Added NULL check for bridge

PATCH In review Souptick Joarder 3 participants 3 messages Jun 19, 2022 – Jun 20, 2022

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 vme: Added NULL check for bridge

From: "Souptick Joarder (HPE)" <[email protected]>

Kernel test robot throws below warning -> drivers/staging/vme_user/vme.c:662:20: warning: dereference of NULL 'bridge' [CWE-476] [-Wanalyzer-null-dereference]

Added a NULL check.

---
 drivers/staging/vme_user/vme.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/vme_user/vme.c +1 -1
index b5555683a069..ede774f2fe5a 100644
@@ -659,7 +659,7 @@ ssize_t vme_master_read(struct vme_resource *resource, void *buf, size_t count,
 	struct vme_master_resource *image;
 	size_t length;
 
-	if (!bridge->master_read) {
+	if (bridge && !bridge->master_read) {
 		printk(KERN_WARNING "Reading from resource not supported\n");
 		return -EINVAL;
 	}
Signature · 1 line
2.25.1
maintainer
#1 lore raw
Quoted 19 lines · Souptick Joarder

From: "Souptick Joarder (HPE)" <[email protected]>

Kernel test robot throws below warning -> drivers/staging/vme_user/vme.c:662:20: warning: dereference of NULL 'bridge' [CWE-476] [-Wanalyzer-null-dereference]

Added a NULL check.

---
 drivers/staging/vme_user/vme.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/vme_user/vme.c +0 -0
index b5555683a069..ede774f2fe5a 100644

drivers/staging/vme_user/vme.c ssize_t vme_master_read(struct vme_resource *resource, void *buf, size_t count, · line 662

Quoted 5 lines
drivers/staging/vme_user/vme.c +1 -1
@@ -659,7 +659,7 @@ ssize_t vme_master_read(struct vme_resource *resource, void *buf, size_t count,
 	struct vme_master_resource *image;
 	size_t length;
 
-	if (!bridge->master_read) {
+	if (bridge && !bridge->master_read) {

How can bridge ever be NULL here?

thanks,

greg k-h

#2 lore raw
In reply to Souptick Joarder
Quoted 19 lines · Souptick Joarder

From: "Souptick Joarder (HPE)" <[email protected]>

Kernel test robot throws below warning -> drivers/staging/vme_user/vme.c:662:20: warning: dereference of NULL 'bridge' [CWE-476] [-Wanalyzer-null-dereference]

Added a NULL check.

---
 drivers/staging/vme_user/vme.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/vme_user/vme.c +0 -0
index b5555683a069..ede774f2fe5a 100644

drivers/staging/vme_user/vme.c ssize_t vme_master_read(struct vme_resource *resource, void *buf, size_t count, · line 662

Quoted 5 lines
drivers/staging/vme_user/vme.c +1 -1
@@ -659,7 +659,7 @@ ssize_t vme_master_read(struct vme_resource *resource, void *buf, size_t count,
 	struct vme_master_resource *image;
 	size_t length;
 
-	if (!bridge->master_read) {
+	if (bridge && !bridge->master_read) {

This patch does not help anything. If "bridge" is NULL here then the kernel will just crash later in the function. Smatch complains about it now:

drivers/staging/vme_user/vme.c:688 vme_master_read() error: we previously assumed 'bridge' could be null (see line 666)

However, I don't believe that bridge can actually be NULL here. We do not write code just to silence that static checker false positives. Fix the checker instead.

regards,
dan carpenter