linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] kobject: fix memory leak in kobject_set_name_vargs
       [not found] <1385630354-6109-1-git-send-email-mlombard@redhat.com>
@ 2013-11-28  9:41 ` Maurizio Lombardi
  0 siblings, 0 replies; 2+ messages in thread
From: Maurizio Lombardi @ 2013-11-28  9:41 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel

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




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH] kobject: fix memory leak in kobject_set_name_vargs
@ 2013-11-08 14:28 Maurizio Lombardi
  0 siblings, 0 replies; 2+ messages in thread
From: Maurizio Lombardi @ 2013-11-08 14:28 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel

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


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-11-28  9:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1385630354-6109-1-git-send-email-mlombard@redhat.com>
2013-11-28  9:41 ` [PATCH] kobject: fix memory leak in kobject_set_name_vargs Maurizio Lombardi
2013-11-08 14:28 Maurizio Lombardi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).