scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle()
authorDinghao Liu <dinghao.liu@zju.edu.cn>
Thu, 23 Nov 2023 08:19:41 +0000 (16:19 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Dec 2023 17:39:16 +0000 (18:39 +0100)
[ Upstream commit 235f2b548d7f4ac5931d834f05d3f7f5166a2e72 ]

When an error occurs in the for loop of beiscsi_init_wrb_handle(), we
should free phwi_ctxt->be_wrbq before returning an error code to prevent
potential memleak.

Fixes: a7909b396ba7 ("[SCSI] be2iscsi: Fix dynamic CID allocation Mechanism in driver")
Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Link: https://lore.kernel.org/r/20231123081941.24854-1-dinghao.liu@zju.edu.cn
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/be2iscsi/be_main.c

index 50a577a..b6df0d4 100644 (file)
@@ -2710,6 +2710,7 @@ init_wrb_hndl_failed:
                kfree(pwrb_context->pwrb_handle_base);
                kfree(pwrb_context->pwrb_handle_basestd);
        }
+       kfree(phwi_ctxt->be_wrbq);
        return -ENOMEM;
 }