Sfoglia il codice sorgente

RDMA/amso1100: Fix memory leak in c2_reg_phys_mr()

If the allocation of mr fails, then c2_reg_phys_mr() leaks the
page_list array it allocated earlier.

This was Coverity CID #1413.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Roland Dreier 18 anni fa
parent
commit
ee30cb5b0b
1 ha cambiato i file con 3 aggiunte e 1 eliminazioni
  1. 3 1
      drivers/infiniband/hw/amso1100/c2_provider.c

+ 3 - 1
drivers/infiniband/hw/amso1100/c2_provider.c

@@ -390,8 +390,10 @@ static struct ib_mr *c2_reg_phys_mr(struct ib_pd *ib_pd,
 	}
 
 	mr = kmalloc(sizeof(*mr), GFP_KERNEL);
-	if (!mr)
+	if (!mr) {
+		vfree(page_list);
 		return ERR_PTR(-ENOMEM);
+	}
 
 	mr->pd = to_c2pd(ib_pd);
 	pr_debug("%s - page shift %d, pbl_depth %d, total_len %u, "