Message ID | 20220914024924.695604-1-rafaelmendsr@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | scsi: qla2xxx: Fix memory leak in __qlt_24xx_handle_abts() | expand |
> On Sep 13, 2022, at 7:49 PM, Rafael Mendonca <rafaelmendsr@gmail.com> wrote: > > Commit 8f394da36a36 ("scsi: qla2xxx: Drop TARGET_SCF_LOOKUP_LUN_FROM_TAG") > made the __qlt_24xx_handle_abts() function return early if > tcm_qla2xxx_find_cmd_by_tag() doesn't find a command, but it missed to > clean up the allocated memory for the management command in such a case. > > Fixes: 8f394da36a36 ("scsi: qla2xxx: Drop TARGET_SCF_LOOKUP_LUN_FROM_TAG") > Signed-off-by: Rafael Mendonca <rafaelmendsr@gmail.com> > --- > drivers/scsi/qla2xxx/qla_target.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c > index 62666df1a59e..4acff4e84b90 100644 > --- a/drivers/scsi/qla2xxx/qla_target.c > +++ b/drivers/scsi/qla2xxx/qla_target.c > @@ -2151,8 +2151,10 @@ static int __qlt_24xx_handle_abts(struct scsi_qla_host *vha, > > abort_cmd = ha->tgt.tgt_ops->find_cmd_by_tag(sess, > le32_to_cpu(abts->exchange_addr_to_abort)); > - if (!abort_cmd) > + if (!abort_cmd) { > + mempool_free(mcmd, qla_tgt_mgmt_cmd_mempool); > return -EIO; > + } > mcmd->unpacked_lun = abort_cmd->se_cmd.orig_fe_lun; > > if (abort_cmd->qpair) { > -- > 2.34.1 > Looks Good. Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
On Tue, 13 Sep 2022 23:49:24 -0300, Rafael Mendonca wrote: > Commit 8f394da36a36 ("scsi: qla2xxx: Drop TARGET_SCF_LOOKUP_LUN_FROM_TAG") > made the __qlt_24xx_handle_abts() function return early if > tcm_qla2xxx_find_cmd_by_tag() doesn't find a command, but it missed to > clean up the allocated memory for the management command in such a case. > > Applied to 6.0/scsi-fixes, thanks! [1/1] scsi: qla2xxx: Fix memory leak in __qlt_24xx_handle_abts() https://git.kernel.org/mkp/scsi/c/601be20fc6a1
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index 62666df1a59e..4acff4e84b90 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -2151,8 +2151,10 @@ static int __qlt_24xx_handle_abts(struct scsi_qla_host *vha, abort_cmd = ha->tgt.tgt_ops->find_cmd_by_tag(sess, le32_to_cpu(abts->exchange_addr_to_abort)); - if (!abort_cmd) + if (!abort_cmd) { + mempool_free(mcmd, qla_tgt_mgmt_cmd_mempool); return -EIO; + } mcmd->unpacked_lun = abort_cmd->se_cmd.orig_fe_lun; if (abort_cmd->qpair) {
Commit 8f394da36a36 ("scsi: qla2xxx: Drop TARGET_SCF_LOOKUP_LUN_FROM_TAG") made the __qlt_24xx_handle_abts() function return early if tcm_qla2xxx_find_cmd_by_tag() doesn't find a command, but it missed to clean up the allocated memory for the management command in such a case. Fixes: 8f394da36a36 ("scsi: qla2xxx: Drop TARGET_SCF_LOOKUP_LUN_FROM_TAG") Signed-off-by: Rafael Mendonca <rafaelmendsr@gmail.com> --- drivers/scsi/qla2xxx/qla_target.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)