From: Roland Dreier Date: Mon, 23 Feb 2009 04:04:34 +0000 (-0800) Subject: IB/ipath: Fix memory leak in init_shadow_tids() error path X-Git-Tag: v2.6.30-rc1~665^2^3~1 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=71c4512201575c7cc008b364e2e2c75cc7085c26;p=~emulex%2Finfiniband.git IB/ipath: Fix memory leak in init_shadow_tids() error path If the second vmalloc() fails, the wrong pointer is pased to vfree(), so the first vmalloc() ends up getting leaked. This was spotted by the Coverity checker (CID 2709). Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/ipath/ipath_init_chip.c b/drivers/infiniband/hw/ipath/ipath_init_chip.c index 64aeefbd2a5..077879c0bdb 100644 --- a/drivers/infiniband/hw/ipath/ipath_init_chip.c +++ b/drivers/infiniband/hw/ipath/ipath_init_chip.c @@ -455,7 +455,7 @@ static void init_shadow_tids(struct ipath_devdata *dd) if (!addrs) { ipath_dev_err(dd, "failed to allocate shadow dma handle " "array, no expected sends!\n"); - vfree(dd->ipath_pageshadow); + vfree(pages); dd->ipath_pageshadow = NULL; return; }