Messages in this thread Patch in this message | | | From | Maurizio Lombardi <> | Subject | [PATCH] kobject: fix memory leak in kobject_set_name_vargs | Date | Fri, 8 Nov 2013 15:28:25 +0100 |
| |
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
| |