Messages in this thread Patch in this message | | | From | Jesper Juhl <> | Subject | [PATCH] Don't leak 'old_class_name' in drivers/base/core.c::device_rename() | Date | Thu, 28 Sep 2006 23:56:01 +0200 |
| |
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 <jesper.juhl@gmail.com> ---
drivers/base/core.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
--- linux-2.6.18-git10-orig/drivers/base/core.c 2006-09-28 22:39:53.000000000 +0200 +++ linux-2.6.18-git10/drivers/base/core.c 2006-09-28 23:48:51.000000000 +0200 @@ -805,8 +805,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); } @@ -830,9 +832,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; } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |