aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvhanquez@kneesa.uk.xensource.com <vhanquez@kneesa.uk.xensource.com>2005-12-31 20:17:45 +0000
committervhanquez@kneesa.uk.xensource.com <vhanquez@kneesa.uk.xensource.com>2005-12-31 20:17:45 +0000
commitd33de0f49690354f8e2d5cda415aa47b72cbe85b (patch)
treefbb7524befd3455d23e0c8cc732cd343674d9d18
parent27c7f637f8bc130570326b7210de9a83a89adcc0 (diff)
downloadxen-d33de0f49690354f8e2d5cda415aa47b72cbe85b.tar.gz
xen-d33de0f49690354f8e2d5cda415aa47b72cbe85b.tar.bz2
xen-d33de0f49690354f8e2d5cda415aa47b72cbe85b.zip
fix possible memory leak if one of the kmalloc fail.
Signed-off-by: Vincent Hanquez <vincent@xensource.com>
-rw-r--r--linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
index 9228cb5190..34d3399a8e 100644
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
@@ -540,6 +540,9 @@ static int __init blkif_init(void)
pending_vaddrs = kmalloc(sizeof(pending_vaddrs[0]) *
mmap_pages, GFP_KERNEL);
if (!pending_reqs || !pending_grant_handles || !pending_vaddrs) {
+ kfree(pending_reqs);
+ kfree(pending_grant_handles);
+ kfree(pending_vaddrs);
printk("%s: out of memory\n", __FUNCTION__);
return -1;
}