diff mbox series

scsi: qedf: potential dereference of null pointer

Message ID 20211216101449.375953-1-jiasheng@iscas.ac.cn (mailing list archive)
State Accepted
Headers show
Series scsi: qedf: potential dereference of null pointer | expand

Commit Message

Jiasheng Jiang Dec. 16, 2021, 10:14 a.m. UTC
The return value of dma_alloc_coherent() needs to be checked.
To avoid use of null pointer in case of the failure of alloc.

Fixes: 61d8658b4a43 ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework.")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
---
 drivers/scsi/qedf/qedf_main.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Saurav Kashyap Jan. 3, 2022, 4:58 a.m. UTC | #1
Hi Jiasheng Jiang,

> -----Original Message-----
> From: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> Sent: Thursday, December 16, 2021 3:45 PM
> To: Saurav Kashyap <skashyap@marvell.com>; Javed Hasan
> <jhasan@marvell.com>; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> Upstream@marvell.com>; jejb@linux.ibm.com; martin.petersen@oracle.com;
> linux@armlinux.org.uk
> Cc: linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org;
> netdev@vger.kernel.org; Jiasheng Jiang <jiasheng@iscas.ac.cn>
> Subject: [EXT] [PATCH] scsi: qedf: potential dereference of null pointer
> 
> External Email
> 
> ----------------------------------------------------------------------
> The return value of dma_alloc_coherent() needs to be checked.
> To avoid use of null pointer in case of the failure of alloc.
> 
> Fixes: 61d8658b4a43 ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver
> framework.")
> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ---
>  drivers/scsi/qedf/qedf_main.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
> index b92570a7c309..309e205a8e70 100644
> --- a/drivers/scsi/qedf/qedf_main.c
> +++ b/drivers/scsi/qedf/qedf_main.c
> @@ -1415,6 +1415,8 @@ static void qedf_upload_connection(struct qedf_ctx
> *qedf,
>  	 */
>  	term_params = dma_alloc_coherent(&qedf->pdev->dev,
> QEDF_TERM_BUFF_SIZE,
>  		&term_params_dma, GFP_KERNEL);
> +	if (!term_params)
> +		return;

<SK> Adding message about failure before returning will help in debugging.

Thanks,
~Saurav
> 
>  	QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_CONN, "Uploading
> connection "
>  		   "port_id=%06x.\n", fcport->rdata->ids.port_id);
> --
> 2.25.1
Jakub Kicinski Jan. 3, 2022, 5:12 p.m. UTC | #2
On Mon, 3 Jan 2022 04:58:41 +0000 Saurav Kashyap wrote:
> > QEDF_TERM_BUFF_SIZE,
> >  		&term_params_dma, GFP_KERNEL);
> > +	if (!term_params)
> > +		return;  
> 
> <SK> Adding message about failure before returning will help in debugging.

Memory allocations produce a pretty detailed splat.
Saurav Kashyap Jan. 4, 2022, 4:05 a.m. UTC | #3
HI Jiasheng Jiang,

> -----Original Message-----
> From: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> Sent: Thursday, December 16, 2021 3:45 PM
> To: Saurav Kashyap <skashyap@marvell.com>; Javed Hasan
> <jhasan@marvell.com>; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-
> Upstream@marvell.com>; jejb@linux.ibm.com; martin.petersen@oracle.com;
> linux@armlinux.org.uk
> Cc: linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org;
> netdev@vger.kernel.org; Jiasheng Jiang <jiasheng@iscas.ac.cn>
> Subject: [EXT] [PATCH] scsi: qedf: potential dereference of null pointer
> 
> External Email
> 
> ----------------------------------------------------------------------
> The return value of dma_alloc_coherent() needs to be checked.
> To avoid use of null pointer in case of the failure of alloc.
> 
> Fixes: 61d8658b4a43 ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver
> framework.")
> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ---
>  drivers/scsi/qedf/qedf_main.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
> index b92570a7c309..309e205a8e70 100644
> --- a/drivers/scsi/qedf/qedf_main.c
> +++ b/drivers/scsi/qedf/qedf_main.c
> @@ -1415,6 +1415,8 @@ static void qedf_upload_connection(struct qedf_ctx
> *qedf,
>  	 */
>  	term_params = dma_alloc_coherent(&qedf->pdev->dev,
> QEDF_TERM_BUFF_SIZE,
>  		&term_params_dma, GFP_KERNEL);
> +	if (!term_params)
> +		return;
> 
>  	QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_CONN, "Uploading
> connection "
>  		   "port_id=%06x.\n", fcport->rdata->ids.port_id);
> --

Acked-by: Saurav Kashyap <skashyap@marvell.com>

Thanks,
~Saurav
> 2.25.1
Martin K. Petersen Jan. 5, 2022, 5:20 a.m. UTC | #4
Jiasheng,

> The return value of dma_alloc_coherent() needs to be checked.
> To avoid use of null pointer in case of the failure of alloc.

Applied to 5.17/scsi-staging, thanks!
Martin K. Petersen Jan. 10, 2022, 10:04 p.m. UTC | #5
On Thu, 16 Dec 2021 18:14:49 +0800, Jiasheng Jiang wrote:

> The return value of dma_alloc_coherent() needs to be checked.
> To avoid use of null pointer in case of the failure of alloc.
> 
> 

Applied to 5.17/scsi-queue, thanks!

[1/1] scsi: qedf: potential dereference of null pointer
      https://git.kernel.org/mkp/scsi/c/aa7069d840da
diff mbox series

Patch

diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
index b92570a7c309..309e205a8e70 100644
--- a/drivers/scsi/qedf/qedf_main.c
+++ b/drivers/scsi/qedf/qedf_main.c
@@ -1415,6 +1415,8 @@  static void qedf_upload_connection(struct qedf_ctx *qedf,
 	 */
 	term_params = dma_alloc_coherent(&qedf->pdev->dev, QEDF_TERM_BUFF_SIZE,
 		&term_params_dma, GFP_KERNEL);
+	if (!term_params)
+		return;
 
 	QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_CONN, "Uploading connection "
 		   "port_id=%06x.\n", fcport->rdata->ids.port_id);