Messages in this thread Patch in this message |  | | Date | Thu, 28 Nov 2013 10:41:02 +0100 | From | Maurizio Lombardi <> | Subject | [PATCH] kobject: fix memory leak in kobject_set_name_vargs |
| |
If the call to kvasprintf fails then the old name of the object will be leaked, this patch fixes the bug by restoring the old name before returning ENOMEM.
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com> --- lib/kobject.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/kobject.c b/lib/kobject.c index 5b4b888..c2cb934 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -247,8 +247,10 @@ int kobject_set_name_vargs(struct kobject *kobj, const char *fmt, return 0;
kobj->name = kvasprintf(GFP_KERNEL, fmt, vargs); - if (!kobj->name) + if (!kobj->name) { + kobj->name = old_name; return -ENOMEM; + }
/* ewww... some of these buggers have '/' in the name ... */ while ((s = strchr(kobj->name, '/'))) -- Maurizio Lombardi
|  |