diff options
author | Sudip Mukherjee <sudipm.mukherjee@gmail.com> | 2015-01-27 18:08:22 +0530 |
---|---|---|
committer | Sasha Levin <sasha.levin@oracle.com> | 2015-04-23 14:58:28 -0400 |
commit | 4f33d5001b3e25e89e29277c85b954f9a2f75248 (patch) | |
tree | 4f71c070e4f1827d81084527032ef2bd4576bfa5 /drivers/block | |
parent | 43d9ca6b598118b0257180f6fa36b7486eef057f (diff) | |
download | lwn-4f33d5001b3e25e89e29277c85b954f9a2f75248.tar.gz lwn-4f33d5001b3e25e89e29277c85b954f9a2f75248.zip |
nbd: fix possible memory leak
[ Upstream commit ff6b8090e26ef7649ef0cc6b42389141ef48b0cf ]
we have already allocated memory for nbd_dev, but we were not
releasing that memory and just returning the error value.
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Acked-by: Paul Clements <Paul.Clements@SteelEye.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/nbd.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 4bc2a5cb9935..a98c41f72c63 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -803,10 +803,6 @@ static int __init nbd_init(void) return -EINVAL; } - nbd_dev = kcalloc(nbds_max, sizeof(*nbd_dev), GFP_KERNEL); - if (!nbd_dev) - return -ENOMEM; - part_shift = 0; if (max_part > 0) { part_shift = fls(max_part); @@ -828,6 +824,10 @@ static int __init nbd_init(void) if (nbds_max > 1UL << (MINORBITS - part_shift)) return -EINVAL; + nbd_dev = kcalloc(nbds_max, sizeof(*nbd_dev), GFP_KERNEL); + if (!nbd_dev) + return -ENOMEM; + for (i = 0; i < nbds_max; i++) { struct gendisk *disk = alloc_disk(1 << part_shift); if (!disk) |