2019-11-05 09:43:07

by Pan Bian

[permalink] [raw]
Subject: [PATCH] SCSI: qla4xxx: fix double free bug

The variable init_fw_cb is released twice, resulting in a double free
bug. The call to the function dma_free_coherent() before goto is removed
to get rid of potential double free.

Fixes: 2a49a78ed3c ("[SCSI] qla4xxx: added IPv6 support.")
Signed-off-by: Pan Bian <[email protected]>
---
drivers/scsi/qla4xxx/ql4_mbx.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c
index dac9a7013208..02636b4785c5 100644
--- a/drivers/scsi/qla4xxx/ql4_mbx.c
+++ b/drivers/scsi/qla4xxx/ql4_mbx.c
@@ -640,9 +640,6 @@ int qla4xxx_initialize_fw_cb(struct scsi_qla_host * ha)

if (qla4xxx_get_ifcb(ha, &mbox_cmd[0], &mbox_sts[0], init_fw_cb_dma) !=
QLA_SUCCESS) {
- dma_free_coherent(&ha->pdev->dev,
- sizeof(struct addr_ctrl_blk),
- init_fw_cb, init_fw_cb_dma);
goto exit_init_fw_cb;
}

--
2.7.4


2019-11-14 04:43:53

by Manish Rangankar

[permalink] [raw]
Subject: RE: [PATCH] SCSI: qla4xxx: fix double free bug


> -----Original Message-----
> From: [email protected] <linux-scsi-
> [email protected]> On Behalf Of Pan Bian
> Sent: Tuesday, November 5, 2019 2:55 PM
> To: [email protected]; James E.J. Bottomley
> <[email protected]>; Martin K. Petersen <[email protected]>
> Cc: [email protected]; [email protected]; Pan Bian
> <[email protected]>
> Subject: [PATCH] SCSI: qla4xxx: fix double free bug
>
> The variable init_fw_cb is released twice, resulting in a double free bug. The
> call to the function dma_free_coherent() before goto is removed to get rid
> of potential double free.
>
> Fixes: 2a49a78ed3c ("[SCSI] qla4xxx: added IPv6 support.")
> Signed-off-by: Pan Bian <[email protected]>
> ---
> drivers/scsi/qla4xxx/ql4_mbx.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c
> index dac9a7013208..02636b4785c5 100644
> --- a/drivers/scsi/qla4xxx/ql4_mbx.c
> +++ b/drivers/scsi/qla4xxx/ql4_mbx.c
> @@ -640,9 +640,6 @@ int qla4xxx_initialize_fw_cb(struct scsi_qla_host *
> ha)
>
> if (qla4xxx_get_ifcb(ha, &mbox_cmd[0], &mbox_sts[0],
> init_fw_cb_dma) !=
> QLA_SUCCESS) {
> - dma_free_coherent(&ha->pdev->dev,
> - sizeof(struct addr_ctrl_blk),
> - init_fw_cb, init_fw_cb_dma);
> goto exit_init_fw_cb;
> }

Thanks

Acked-by: Manish Rangankar <[email protected]>

2019-11-19 04:35:52

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH] SCSI: qla4xxx: fix double free bug


Pan,

> The variable init_fw_cb is released twice, resulting in a double free
> bug. The call to the function dma_free_coherent() before goto is
> removed to get rid of potential double free.

Applied to 5.5/scsi-queue, thanks!

--
Martin K. Petersen Oracle Linux Engineering