diff options
author | Navid Emamdoost <navid.emamdoost@gmail.com> | 2019-09-25 09:45:42 -0500 |
---|---|---|
committer | Jason Gunthorpe <jgg@mellanox.com> | 2019-10-01 11:34:55 -0300 |
commit | 34b3be18a04ecdc610aae4c48e5d1b799d8689f6 (patch) | |
tree | 43afb02fa92d6fe44cc7feb5be1a4d44fcd809df /drivers/infiniband/hw/hfi1 | |
parent | 390d3fdcae2da52755b31aa44fcf19ecb5a2488b (diff) | |
download | linux-34b3be18a04ecdc610aae4c48e5d1b799d8689f6.tar.bz2 |
RDMA/hfi1: Prevent memory leak in sdma_init
In sdma_init if rhashtable_init fails the allocated memory for
tmp_sdma_rht should be released.
Fixes: 5a52a7acf7e2 ("IB/hfi1: NULL pointer dereference when freeing rhashtable")
Link: https://lore.kernel.org/r/20190925144543.10141-1-navid.emamdoost@gmail.com
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
Acked-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband/hw/hfi1')
-rw-r--r-- | drivers/infiniband/hw/hfi1/sdma.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/hfi1/sdma.c b/drivers/infiniband/hw/hfi1/sdma.c index 2395fd4233a7..2ed7bfd5feea 100644 --- a/drivers/infiniband/hw/hfi1/sdma.c +++ b/drivers/infiniband/hw/hfi1/sdma.c @@ -1526,8 +1526,11 @@ int sdma_init(struct hfi1_devdata *dd, u8 port) } ret = rhashtable_init(tmp_sdma_rht, &sdma_rht_params); - if (ret < 0) + if (ret < 0) { + kfree(tmp_sdma_rht); goto bail; + } + dd->sdma_rht = tmp_sdma_rht; dd_dev_info(dd, "SDMA num_sdma: %u\n", dd->num_sdma); |