kobject: fix memory leak in kobject_set_name_vargs
[cascardo/linux.git] / lib / kobject.c
index 98b45bb..94b321f 100644 (file)
@@ -265,8 +265,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, '/')))