* [PATCH] scsi: lpfc: don't dereference dma_buf->iocbq before null check
@ 2017-02-24 14:09 Colin King
2017-03-04 17:42 ` James Smart
0 siblings, 1 reply; 2+ messages in thread
From: Colin King @ 2017-02-24 14:09 UTC (permalink / raw)
To: James Smart, Dick Kennedy, James E . J . Bottomley,
Martin K . Petersen, linux-scsi
Cc: kernel-janitors, linux-kernel
From: Colin Ian King <colin.king@canonical.com>
dma_buf->iocbq is being dereferenced immediately before it is
being null checked, so we have a potential null pointer dereference
bug. Fix this by only dereferencing it only once we have passed
a null check on the pointer.
Detected by CoverityScan, CID#1411652 ("Dereference before null check")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
drivers/scsi/lpfc/lpfc_mem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/lpfc/lpfc_mem.c b/drivers/scsi/lpfc/lpfc_mem.c
index c61d8d6..5986c79 100644
--- a/drivers/scsi/lpfc/lpfc_mem.c
+++ b/drivers/scsi/lpfc/lpfc_mem.c
@@ -646,7 +646,6 @@ lpfc_sli4_nvmet_alloc(struct lpfc_hba *phba)
}
dma_buf->iocbq = lpfc_sli_get_iocbq(phba);
- dma_buf->iocbq->iocb_flag = LPFC_IO_NVMET;
if (!dma_buf->iocbq) {
kfree(dma_buf->context);
pci_pool_free(phba->lpfc_drb_pool, dma_buf->dbuf.virt,
@@ -658,6 +657,7 @@ lpfc_sli4_nvmet_alloc(struct lpfc_hba *phba)
"2621 Ran out of nvmet iocb/WQEs\n");
return NULL;
}
+ dma_buf->iocbq->iocb_flag = LPFC_IO_NVMET;
nvmewqe = dma_buf->iocbq;
wqe = (union lpfc_wqe128 *)&nvmewqe->wqe;
/* Initialize WQE */
--
2.10.2
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] scsi: lpfc: don't dereference dma_buf->iocbq before null check
2017-02-24 14:09 [PATCH] scsi: lpfc: don't dereference dma_buf->iocbq before null check Colin King
@ 2017-03-04 17:42 ` James Smart
0 siblings, 0 replies; 2+ messages in thread
From: James Smart @ 2017-03-04 17:42 UTC (permalink / raw)
To: Colin King, Dick Kennedy, James E . J . Bottomley,
Martin K . Petersen, linux-scsi
Cc: kernel-janitors, linux-kernel
Looks good. I included it in the lpfc patch set just posted.
-- james
On 2/24/2017 6:09 AM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> dma_buf->iocbq is being dereferenced immediately before it is
> being null checked, so we have a potential null pointer dereference
> bug. Fix this by only dereferencing it only once we have passed
> a null check on the pointer.
>
> Detected by CoverityScan, CID#1411652 ("Dereference before null check")
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
> drivers/scsi/lpfc/lpfc_mem.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/lpfc/lpfc_mem.c b/drivers/scsi/lpfc/lpfc_mem.c
> index c61d8d6..5986c79 100644
> --- a/drivers/scsi/lpfc/lpfc_mem.c
> +++ b/drivers/scsi/lpfc/lpfc_mem.c
> @@ -646,7 +646,6 @@ lpfc_sli4_nvmet_alloc(struct lpfc_hba *phba)
> }
>
> dma_buf->iocbq = lpfc_sli_get_iocbq(phba);
> - dma_buf->iocbq->iocb_flag = LPFC_IO_NVMET;
> if (!dma_buf->iocbq) {
> kfree(dma_buf->context);
> pci_pool_free(phba->lpfc_drb_pool, dma_buf->dbuf.virt,
> @@ -658,6 +657,7 @@ lpfc_sli4_nvmet_alloc(struct lpfc_hba *phba)
> "2621 Ran out of nvmet iocb/WQEs\n");
> return NULL;
> }
> + dma_buf->iocbq->iocb_flag = LPFC_IO_NVMET;
> nvmewqe = dma_buf->iocbq;
> wqe = (union lpfc_wqe128 *)&nvmewqe->wqe;
> /* Initialize WQE */
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-03-04 17:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-24 14:09 [PATCH] scsi: lpfc: don't dereference dma_buf->iocbq before null check Colin King
2017-03-04 17:42 ` James Smart
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®