Re: [PATCH] scsi: lpfc_nvme: Fix wrong sizeof argument

From: James Smart
Date: Mon Mar 18 2019 - 17:58:10 EST




On 3/18/2019 10:44 AM, James Bottomley wrote:
On Mon, 2019-03-18 at 12:15 -0500, Gustavo A. R. Silva wrote:
sizeof() is currently using the wrong argument when used in a call to
memset(). Notice that wqe is a pointer to union lpfc_wqe128, not to
union lpfc_wqe.

Fix this by using union lpfc_wqe128 instead of lpfc_wqe as argument
of sizeof().

Addresses-Coverity-ID: 1443938 ("Wrong sizeof argument")
Fixes: 5fd1108517d9 ("scsi: lpfc: Streamline NVME Initiator WQE
setup")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
---
drivers/scsi/lpfc/lpfc_nvme.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/lpfc/lpfc_nvme.c
b/drivers/scsi/lpfc/lpfc_nvme.c
index d16ca413110d..3dc0c85c7d50 100644
--- a/drivers/scsi/lpfc/lpfc_nvme.c
+++ b/drivers/scsi/lpfc/lpfc_nvme.c
@@ -1981,7 +1981,7 @@ lpfc_get_nvme_buf(struct lpfc_hba *phba, struct
lpfc_nodelist *ndlp,
/* Fill in word 3 / sgl_len during cmd submission */
/* Initialize WQE */
- memset(wqe, 0, sizeof(union lpfc_wqe));
+ memset(wqe, 0, sizeof(union lpfc_wqe128));
Actually the correct way to avoid potential problems like this is

memset(wqe, 0, sizeof(*wqe));

James


Agree with James on style. This one reference was a little interesting. It purposely was something smaller than the whole structure as the latter end of the structure ends up getting set later. But not a big deal to correct as indicated.

--james