From jesper.juhl@gmail.com Thu Sep 28 16:39:41 2006 From: Jesper Juhl To: Greg Kroah-Hartman Subject: Driver core: Don't leak 'old_class_name' in drivers/base/core.c::device_rename() Date: Thu, 28 Sep 2006 23:56:01 +0200 Cc: linux-kernel@vger.kernel.org, Patrick Mochel , Patrick Mochel Content-Disposition: inline Message-Id: <200609282356.01962.jesper.juhl@gmail.com> If kmalloc() fails to allocate space for 'old_symlink_name' in drivers/base/core.c::device_rename(), then we'll leak 'old_class_name'. Spotted by the Coverity checker. Signed-off-by: Jesper Juhl Signed-off-by: Greg Kroah-Hartman --- drivers/base/core.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- gregkh-2.6.orig/drivers/base/core.c +++ gregkh-2.6/drivers/base/core.c @@ -809,8 +809,10 @@ int device_rename(struct device *dev, ch if (dev->class) { old_symlink_name = kmalloc(BUS_ID_SIZE, GFP_KERNEL); - if (!old_symlink_name) - return -ENOMEM; + if (!old_symlink_name) { + error = -ENOMEM; + goto out_free_old_class; + } strlcpy(old_symlink_name, dev->bus_id, BUS_ID_SIZE); } @@ -834,9 +836,10 @@ int device_rename(struct device *dev, ch } put_device(dev); - kfree(old_class_name); kfree(new_class_name); kfree(old_symlink_name); + out_free_old_class: + kfree(old_class_name); return error; }