lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 27 Mar 2023 18:15:17 +0000
From:   Himanshu Madhani <himanshu.madhani@...cle.com>
To:     Li Zetao <lizetao1@...wei.com>
CC:     Nilesh Javali <njavali@...vell.com>,
        GR-QLogic-Storage-Upstream <GR-QLogic-Storage-Upstream@...vell.com>,
        "James E.J. Bottomley" <jejb@...ux.ibm.com>,
        Martin Petersen <martin.petersen@...cle.com>,
        Himanshu Madhani <himanshu.madhani@...ium.com>,
        Quinn Tran <quinn.tran@...ium.com>,
        linux-scsi <linux-scsi@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] scsi: qla2xxx: Fix memory leak in qla2x00_probe_one()



> On Mar 25, 2023, at 4:00 AM, Li Zetao <lizetao1@...wei.com> wrote:
> 
> There is a memory leak reported by kmemleak:
> 
>  unreferenced object 0xffffc900003f0000 (size 12288):
>    comm "modprobe", pid 19117, jiffies 4299751452 (age 42490.264s)
>    hex dump (first 32 bytes):
>      00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>      00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>    backtrace:
>      [<00000000629261a8>] __vmalloc_node_range+0xe56/0x1110
>      [<0000000001906886>] __vmalloc_node+0xbd/0x150
>      [<000000005bb4dc34>] vmalloc+0x25/0x30
>      [<00000000a2dc1194>] qla2x00_create_host+0x7a0/0xe30 [qla2xxx]
>      [<0000000062b14b47>] qla2x00_probe_one+0x2eb8/0xd160 [qla2xxx]
>      [<00000000641ccc04>] local_pci_probe+0xeb/0x1a0
> 
> The root cause is traced to an error handling path in qla2x00_probe_one()
> when the adapter "base_vha" initialize failed. The fab_scan_rp "scan.l"
> is used to record the port information and it is alloced in
> qla2x00_create_host(). However, it is not released in the error handling
> path "probe_failed".
> 
> Fix it by freeing the memory of "scan.l" when an error occurs in adapter
> initialize process.
> 
> Fixes: a4239945b8ad ("scsi: qla2xxx: Add switch command to simplify fabric discovery")
> Signed-off-by: Li Zetao <lizetao1@...wei.com>
> ---
> drivers/scsi/qla2xxx/qla_os.c | 1 +
> 1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index 80c4ee9df2a4..38916e11684d 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -3606,6 +3606,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
> probe_failed:
> qla_enode_stop(base_vha);
> qla_edb_stop(base_vha);
> + vfree(base_vha->scan.l);
> if (base_vha->gnl.l) {
> dma_free_coherent(&ha->pdev->dev, base_vha->gnl.size,
> base_vha->gnl.l, base_vha->gnl.ldma);
> -- 
> 2.34.1
> 

Reviewed-by: Himanshu Madhani <himanshu.madhani@...cle.com>

-- 
Himanshu Madhani Oracle Linux Engineering

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ