[PATCH][next] soc: fsl: dpio: fix dereference of pointer p before null check

Subsystems: freescale soc drivers, the rest

STALE2364d

3 messages, 3 authors, 2020-02-24 · open the first message on its own page

[PATCH][next] soc: fsl: dpio: fix dereference of pointer p before null check

From: Colin King <hidden>
Date: 2020-02-21 23:11:56

From: Colin Ian King <redacted>

Pointer p is currently being dereferenced before it is null
checked on a memory allocation failure check. Fix this by
checking if p is null before dereferencing it.

Addresses-Coverity: ("Dereference before null check")
Fixes: 3b2abda7d28c ("soc: fsl: dpio: Replace QMAN array mode with ring mode enqueue")
Signed-off-by: Colin Ian King <redacted>
---
 drivers/soc/fsl/dpio/qbman-portal.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/soc/fsl/dpio/qbman-portal.c b/drivers/soc/fsl/dpio/qbman-portal.c
index 740ee0d19582..d1f49caa5b13 100644
--- a/drivers/soc/fsl/dpio/qbman-portal.c
+++ b/drivers/soc/fsl/dpio/qbman-portal.c
@@ -249,10 +249,11 @@ struct qbman_swp *qbman_swp_init(const struct qbman_swp_desc *d)
 	u32 mask_size;
 	u32 eqcr_pi;
 
-	spin_lock_init(&p->access_spinlock);
-
 	if (!p)
 		return NULL;
+
+	spin_lock_init(&p->access_spinlock);
+
 	p->desc = d;
 	p->mc.valid_bit = QB_VALID_BIT;
 	p->sdq = 0;
-- 
2.25.0

RE: [PATCH][next] soc: fsl: dpio: fix dereference of pointer p before null check

From: Leo Li <hidden>
Date: 2020-02-21 23:18:47

-----Original Message-----
From: Colin King <redacted>
Sent: Friday, February 21, 2020 5:12 PM
To: Roy Pledge <roy.pledge@nxp.com>; Leo Li <redacted>; Youri
Querry [off-list ref]; linuxppc-dev@lists.ozlabs.org; linux-
arm-kernel@lists.infradead.org
Cc: kernel-janitors@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: [PATCH][next] soc: fsl: dpio: fix dereference of pointer p before null
check

From: Colin Ian King <redacted>

Pointer p is currently being dereferenced before it is null checked on a
memory allocation failure check. Fix this by checking if p is null before
dereferencing it.

Addresses-Coverity: ("Dereference before null check")
Fixes: 3b2abda7d28c ("soc: fsl: dpio: Replace QMAN array mode with ring
mode enqueue")
Signed-off-by: Colin Ian King <redacted>
Applied for next.  Thanks.
quoted hunk
---
 drivers/soc/fsl/dpio/qbman-portal.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/soc/fsl/dpio/qbman-portal.c
b/drivers/soc/fsl/dpio/qbman-portal.c
index 740ee0d19582..d1f49caa5b13 100644
--- a/drivers/soc/fsl/dpio/qbman-portal.c
+++ b/drivers/soc/fsl/dpio/qbman-portal.c
@@ -249,10 +249,11 @@ struct qbman_swp *qbman_swp_init(const struct
qbman_swp_desc *d)
 	u32 mask_size;
 	u32 eqcr_pi;

-	spin_lock_init(&p->access_spinlock);
-
 	if (!p)
 		return NULL;
+
+	spin_lock_init(&p->access_spinlock);
+
 	p->desc = d;
 	p->mc.valid_bit = QB_VALID_BIT;
 	p->sdq = 0;
--
2.25.0

Re: [PATCH][next] soc: fsl: dpio: fix dereference of pointer p before null check

From: Dan Carpenter <hidden>
Date: 2020-02-24 06:36:21

On Fri, Feb 21, 2020 at 11:11:43PM +0000, Colin King wrote:
quoted hunk
---
 drivers/soc/fsl/dpio/qbman-portal.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/soc/fsl/dpio/qbman-portal.c b/drivers/soc/fsl/dpio/qbman-portal.c
index 740ee0d19582..d1f49caa5b13 100644
--- a/drivers/soc/fsl/dpio/qbman-portal.c
+++ b/drivers/soc/fsl/dpio/qbman-portal.c
@@ -249,10 +249,11 @@ struct qbman_swp *qbman_swp_init(const struct qbman_swp_desc *d)
 	u32 mask_size;
 	u32 eqcr_pi;
 
-	spin_lock_init(&p->access_spinlock);
-
 	if (!p)
 		return NULL;
+
+	spin_lock_init(&p->access_spinlock);
Allocations in the declaration blog are not super common in the kernel,
but they're more bug prone.  Generally, it's not beautiful to call a
function which can fail in the allocation block.

regards,
dan carpenter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help