2020-04-01 22:58:31

by Colin King

[permalink] [raw]
Subject: [PATCH][next] i40iw: fix null pointer dereference on a null wqe pointer

From: Colin Ian King <[email protected]>

Currently the null check for wqe is incorrect and lets a null wqe
be passed to set_64bit_val and this indexes into the null pointer
causing a null pointer dereference. Fix this by fixing the null
pointer check to return an error if wqe is null.

Addresses-Coverity: ("dereference after a null check")
Fixes: 4b34e23f4eaa ("i40iw: Report correct firmware version")
Signed-off-by: Colin Ian King <[email protected]>
---
drivers/infiniband/hw/i40iw/i40iw_ctrl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/i40iw/i40iw_ctrl.c b/drivers/infiniband/hw/i40iw/i40iw_ctrl.c
index e8b4b3743661..688f19667221 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_ctrl.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_ctrl.c
@@ -1046,7 +1046,7 @@ i40iw_sc_query_rdma_features(struct i40iw_sc_cqp *cqp,
u64 header;

wqe = i40iw_sc_cqp_get_next_send_wqe(cqp, scratch);
- if (wqe)
+ if (!wqe)
return I40IW_ERR_RING_FULL;

set_64bit_val(wqe, 32, feat_mem->pa);
--
2.25.1


2020-04-01 23:42:36

by Shiraz Saleem

[permalink] [raw]
Subject: RE: [PATCH][next] i40iw: fix null pointer dereference on a null wqe pointer

> Subject: [PATCH][next] i40iw: fix null pointer dereference on a null wqe pointer
>
> From: Colin Ian King <[email protected]>
>
> Currently the null check for wqe is incorrect and lets a null wqe be passed to
> set_64bit_val and this indexes into the null pointer causing a null pointer
> dereference. Fix this by fixing the null pointer check to return an error if wqe is
> null.
>
> Addresses-Coverity: ("dereference after a null check")
> Fixes: 4b34e23f4eaa ("i40iw: Report correct firmware version")
> Signed-off-by: Colin Ian King <[email protected]>

Ugh! Yes. That’s a bad one. Thanks for the fix.

Acked-by: Shiraz Saleem <[email protected]>

2020-04-15 13:11:32

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH][next] i40iw: fix null pointer dereference on a null wqe pointer

On Wed, Apr 01, 2020 at 11:49:21PM +0100, Colin King wrote:
> From: Colin Ian King <[email protected]>
>
> Currently the null check for wqe is incorrect and lets a null wqe
> be passed to set_64bit_val and this indexes into the null pointer
> causing a null pointer dereference. Fix this by fixing the null
> pointer check to return an error if wqe is null.
>
> Addresses-Coverity: ("dereference after a null check")
> Fixes: 4b34e23f4eaa ("i40iw: Report correct firmware version")
> Signed-off-by: Colin Ian King <[email protected]>
> Acked-by: Shiraz Saleem <[email protected]>
> ---
> drivers/infiniband/hw/i40iw/i40iw_ctrl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Applied to for-rc, thanks

Jason