aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorColin Ian King <colin.king@canonical.com>2017-08-08 18:41:02 +0100
committerDoug Ledford <dledford@redhat.com>2017-08-16 11:30:33 -0400
commit5b59a3969e95cd9be3699ecf7149ae8ef103b6f5 (patch)
tree940d528d54ef8bb6b51f82225ecd41a1b96b056e /drivers/infiniband
parenti40iw: Fix potential fcn_id_array out of bounds (diff)
downloadlinux-dev-5b59a3969e95cd9be3699ecf7149ae8ef103b6f5.tar.xz
linux-dev-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.c4
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);
}