lkml.org 
[lkml]   [2020]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 092/255] scsi: hpsa: Fix memory leak in hpsa_init_one()
    Date
    From: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp>

    [ Upstream commit af61bc1e33d2c0ec22612b46050f5b58ac56a962 ]

    When hpsa_scsi_add_host() fails, h->lastlogicals is leaked since it is
    missing a free() in the error handler.

    Fix this by adding free() when hpsa_scsi_add_host() fails.

    Link: https://lore.kernel.org/r/20201027073125.14229-1-keitasuzuki.park@sslab.ics.keio.ac.jp
    Tested-by: Don Brace <don.brace@microchip.com>
    Acked-by: Don Brace <don.brace@microchip.com>
    Signed-off-by: Keita Suzuki <keitasuzuki.park@sslab.ics.keio.ac.jp>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/hpsa.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
    index 48d5da59262b4..aed59ec20ad9e 100644
    --- a/drivers/scsi/hpsa.c
    +++ b/drivers/scsi/hpsa.c
    @@ -8854,7 +8854,7 @@ reinit_after_soft_reset:
    /* hook into SCSI subsystem */
    rc = hpsa_scsi_add_host(h);
    if (rc)
    - goto clean7; /* perf, sg, cmd, irq, shost, pci, lu, aer/h */
    + goto clean8; /* lastlogicals, perf, sg, cmd, irq, shost, pci, lu, aer/h */

    /* Monitor the controller for firmware lockups */
    h->heartbeat_sample_interval = HEARTBEAT_SAMPLE_INTERVAL;
    @@ -8869,6 +8869,8 @@ reinit_after_soft_reset:
    HPSA_EVENT_MONITOR_INTERVAL);
    return 0;

    +clean8: /* lastlogicals, perf, sg, cmd, irq, shost, pci, lu, aer/h */
    + kfree(h->lastlogicals);
    clean7: /* perf, sg, cmd, irq, shost, pci, lu, aer/h */
    hpsa_free_performant_mode(h);
    h->access.set_intr_mask(h, HPSA_INTR_OFF);
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-11-17 14:39    [W:4.991 / U:0.416 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site