Bläddra i källkod

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>
Colin Ian King 8 år sedan
förälder
incheckning
5b59a3969e
1 ändrade filer med 3 tillägg och 1 borttagningar
  1. 3 1
      drivers/infiniband/hw/hns/hns_roce_ah.c

+ 3 - 1
drivers/infiniband/hw/hns/hns_roce_ah.c

@@ -64,8 +64,10 @@ struct ib_ah *hns_roce_create_ah(struct ib_pd *ibpd,
 	} else {
 	} else {
 		u8 *dmac = rdma_ah_retrieve_dmac(ah_attr);
 		u8 *dmac = rdma_ah_retrieve_dmac(ah_attr);
 
 
-		if (!dmac)
+		if (!dmac) {
+			kfree(ah);
 			return ERR_PTR(-EINVAL);
 			return ERR_PTR(-EINVAL);
+		}
 		memcpy(ah->av.mac, dmac, ETH_ALEN);
 		memcpy(ah->av.mac, dmac, ETH_ALEN);
 	}
 	}