diff options
author | Colin Ian King <colin.king@canonical.com> | 2017-08-08 18:41:02 +0100 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-08-16 11:30:33 -0400 |
commit | 5b59a3969e95cd9be3699ecf7149ae8ef103b6f5 (patch) | |
tree | 940d528d54ef8bb6b51f82225ecd41a1b96b056e /drivers/infiniband | |
parent | aa939c12ab8a0c094420ad1b909a957ac590e43e (diff) | |
download | linux-5b59a3969e95cd9be3699ecf7149ae8ef103b6f5.tar.gz linux-5b59a3969e95cd9be3699ecf7149ae8ef103b6f5.tar.bz2 linux-5b59a3969e95cd9be3699ecf7149ae8ef103b6f5.zip |
IB/hns: fix memory leak on ah on error return path
When dmac is NULL, ah is not being freed on the error return path. Fix
this by kfree'ing it.
Detected by CoverityScan, CID#1452636 ("Resource Leak")
Fixes: d8966fcd4c25 ("IB/core: Use rdma_ah_attr accessor functions")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/hns/hns_roce_ah.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/hns/hns_roce_ah.c b/drivers/infiniband/hw/hns/hns_roce_ah.c index f78a733a63ec..d545302b8ef8 100644 --- a/drivers/infiniband/hw/hns/hns_roce_ah.c +++ b/drivers/infiniband/hw/hns/hns_roce_ah.c @@ -64,8 +64,10 @@ struct ib_ah *hns_roce_create_ah(struct ib_pd *ibpd, } else { u8 *dmac = rdma_ah_retrieve_dmac(ah_attr); - if (!dmac) + if (!dmac) { + kfree(ah); return ERR_PTR(-EINVAL); + } memcpy(ah->av.mac, dmac, ETH_ALEN); } |