summaryrefslogtreecommitdiffstats
path: root/fs/nilfs2/sysfs.c
diff options
context:
space:
mode:
authorNanyong Sun <sunnanyong@huawei.com>2021-09-08 05:00:15 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2021-09-08 20:50:27 +0200
commit24f8cb1ed057c840728167dab33b32e44147c86f (patch)
tree3254a4670bf57a011a0c870bf39f36be7e146a83 /fs/nilfs2/sysfs.c
parentnilfs2: fix NULL pointer in nilfs_##name##_attr_release (diff)
downloadlinux-24f8cb1ed057c840728167dab33b32e44147c86f.tar.xz
linux-24f8cb1ed057c840728167dab33b32e44147c86f.zip
nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group
If kobject_init_and_add return with error, kobject_put() is needed here to avoid memory leak, because kobject_init_and_add may return error without freeing the memory associated with the kobject it allocated. Link: https://lkml.kernel.org/r/20210629022556.3985106-4-sunnanyong@huawei.com Link: https://lkml.kernel.org/r/1625651306-10829-4-git-send-email-konishi.ryusuke@gmail.com Signed-off-by: Nanyong Sun <sunnanyong@huawei.com> Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to '')
-rw-r--r--fs/nilfs2/sysfs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/nilfs2/sysfs.c b/fs/nilfs2/sysfs.c
index ec85ac53720d..6305e4ef7e39 100644
--- a/fs/nilfs2/sysfs.c
+++ b/fs/nilfs2/sysfs.c
@@ -79,8 +79,8 @@ static int nilfs_sysfs_create_##name##_group(struct the_nilfs *nilfs) \
err = kobject_init_and_add(kobj, &nilfs_##name##_ktype, parent, \
#name); \
if (err) \
- return err; \
- return 0; \
+ kobject_put(kobj); \
+ return err; \
} \
static void nilfs_sysfs_delete_##name##_group(struct the_nilfs *nilfs) \
{ \