summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLin Yi <teroincn@163.com>2019-06-03 16:08:10 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-06-19 19:27:39 +0200
commit122f8ec7b78e2d0f2dc6c966bef96b47c955ca36 (patch)
tree43ff22835eb5fbe2d3d137f2d117eb00a7c00928
parent5666d896e838c974c535b3949353c83d68ce4384 (diff)
downloadlinux-stable-122f8ec7b78e2d0f2dc6c966bef96b47c955ca36.tar.gz
linux-stable-122f8ec7b78e2d0f2dc6c966bef96b47c955ca36.tar.bz2
linux-stable-122f8ec7b78e2d0f2dc6c966bef96b47c955ca36.zip
lib : kobject: fix refcount imblance on kobject_rename
the kobj refcount increased by kobject_get should be released before error return, otherwise lead to a memory leak. Signed-off-by: Lin Yi <teroincn@163.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--lib/kobject.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/kobject.c b/lib/kobject.c
index f2ccdbac8ed9..83198cb37d8d 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -498,8 +498,10 @@ int kobject_rename(struct kobject *kobj, const char *new_name)
kobj = kobject_get(kobj);
if (!kobj)
return -EINVAL;
- if (!kobj->parent)
+ if (!kobj->parent) {
+ kobject_put(kobj);
return -EINVAL;
+ }
devpath = kobject_get_path(kobj, GFP_KERNEL);
if (!devpath) {