2019-05-13 03:39:29

by Tobin C. Harding

[permalink] [raw]
Subject: [PATCH] ocfs2: Fix error path kobject memory leak

If a call to kobject_init_and_add() fails we should call kobject_put()
otherwise we leak memory.

Add call to kobject_put() in the error path of call to
kobject_init_and_add(). Please note, this has the side effect that
the release method is called if kobject_init_and_add() fails.

Signed-off-by: Tobin C. Harding <[email protected]>
---

Is it ok to send patches during the merge window?

Applies on top of Linus' mainline tag: v5.1

Happy to rebase if there are conflicts.

thanks,
Tobin.

fs/ocfs2/filecheck.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/ocfs2/filecheck.c b/fs/ocfs2/filecheck.c
index f65f2b2f594d..1906cc962c4d 100644
--- a/fs/ocfs2/filecheck.c
+++ b/fs/ocfs2/filecheck.c
@@ -193,6 +193,7 @@ int ocfs2_filecheck_create_sysfs(struct ocfs2_super *osb)
ret = kobject_init_and_add(&entry->fs_kobj, &ocfs2_ktype_filecheck,
NULL, "filecheck");
if (ret) {
+ kobject_put(&entry->fs_kobj);
kfree(fcheck);
return ret;
}
--
2.21.0


2019-05-13 07:45:40

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH] ocfs2: Fix error path kobject memory leak

On Mon, May 13, 2019 at 01:34:58PM +1000, Tobin C. Harding wrote:
> If a call to kobject_init_and_add() fails we should call kobject_put()
> otherwise we leak memory.
>
> Add call to kobject_put() in the error path of call to
> kobject_init_and_add(). Please note, this has the side effect that
> the release method is called if kobject_init_and_add() fails.
>
> Signed-off-by: Tobin C. Harding <[email protected]>
> ---

Reviewed-by: Greg Kroah-Hartman <[email protected]>

2019-05-13 08:05:25

by Joseph Qi

[permalink] [raw]
Subject: Re: [PATCH] ocfs2: Fix error path kobject memory leak



On 19/5/13 11:34, Tobin C. Harding wrote:
> If a call to kobject_init_and_add() fails we should call kobject_put()
> otherwise we leak memory.
>
> Add call to kobject_put() in the error path of call to
> kobject_init_and_add(). Please note, this has the side effect that
> the release method is called if kobject_init_and_add() fails.
>
> Signed-off-by: Tobin C. Harding <[email protected]>

Reviewed-by: Joseph Qi <[email protected]>
> ---
>
> Is it ok to send patches during the merge window?
>
> Applies on top of Linus' mainline tag: v5.1
>
> Happy to rebase if there are conflicts.
>
> thanks,
> Tobin.
>
> fs/ocfs2/filecheck.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/ocfs2/filecheck.c b/fs/ocfs2/filecheck.c
> index f65f2b2f594d..1906cc962c4d 100644
> --- a/fs/ocfs2/filecheck.c
> +++ b/fs/ocfs2/filecheck.c
> @@ -193,6 +193,7 @@ int ocfs2_filecheck_create_sysfs(struct ocfs2_super *osb)
> ret = kobject_init_and_add(&entry->fs_kobj, &ocfs2_ktype_filecheck,
> NULL, "filecheck");
> if (ret) {
> + kobject_put(&entry->fs_kobj);
> kfree(fcheck);
> return ret;
> }
>