scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()
authorJoy Gu <jgu@purestorage.com>
Tue, 12 Oct 2021 19:18:33 +0000 (12:18 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 19 Oct 2021 03:04:31 +0000 (23:04 -0400)
Commit 8c0eb596baa5 ("[SCSI] qla2xxx: Fix a memory leak in an error path of
qla2x00_process_els()"), intended to change:

        bsg_job->request->msgcode == FC_BSG_HST_ELS_NOLOGIN

to:

        bsg_job->request->msgcode != FC_BSG_RPT_ELS

but changed it to:

        bsg_job->request->msgcode == FC_BSG_RPT_ELS

instead.

Change the == to a != to avoid leaking the fcport structure or freeing
unallocated memory.

Link: https://lore.kernel.org/r/20211012191834.90306-2-jgu@purestorage.com
Fixes: 8c0eb596baa5 ("[SCSI] qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()")
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Joy Gu <jgu@purestorage.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_bsg.c

index 4b5d28d..655cf5d 100644 (file)
@@ -431,7 +431,7 @@ done_unmap_sg:
        goto done_free_fcport;
 
 done_free_fcport:
-       if (bsg_request->msgcode == FC_BSG_RPT_ELS)
+       if (bsg_request->msgcode != FC_BSG_RPT_ELS)
                qla2x00_free_fcport(fcport);
 done:
        return rval;