IB/ipath: Fix memory leak in init_shadow_tids() error path
authorRoland Dreier <rolandd@cisco.com>
Mon, 23 Feb 2009 04:04:34 +0000 (20:04 -0800)
committerRoland Dreier <rolandd@cisco.com>
Mon, 23 Feb 2009 04:04:34 +0000 (20:04 -0800)
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 <rolandd@cisco.com>
drivers/infiniband/hw/ipath/ipath_init_chip.c

index 64aeefb..077879c 100644 (file)
@@ -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;
        }