drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init()
authorYuan Can <yuancan@huawei.com>
Wed, 7 Dec 2022 08:54:10 +0000 (08:54 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Dec 2022 10:52:43 +0000 (10:52 +0000)
If vp alloc failed in qlcnic_sriov_init(), all previously allocated vp
needs to be freed.

Fixes: f197a7aa6288 ("qlcnic: VF-PF communication channel implementation")
Signed-off-by: Yuan Can <yuancan@huawei.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c

index 9282321c2e7fbb4a622205e7d35c84d5d91190bb..f9dd50152b1e3e2ec476fb4238a34f265ef72332 100644 (file)
@@ -221,6 +221,8 @@ int qlcnic_sriov_init(struct qlcnic_adapter *adapter, int num_vfs)
        return 0;
 
 qlcnic_destroy_async_wq:
+       while (i--)
+               kfree(sriov->vf_info[i].vp);
        destroy_workqueue(bc->bc_async_wq);
 
 qlcnic_destroy_trans_wq: