2019-04-30 00:13:50

by Tobin C. Harding

[permalink] [raw]
Subject: [PATCH] sched/cpufreq: Fix kobject memleak

Currently error return from kobject_init_and_add() is not followed by a
call to kobject_put(). This means there is a memory leak.

Add call to kobject_put() in error path of kobject_init_and_add().
---
kernel/sched/cpufreq_schedutil.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
index 5c41ea367422..3638d2377e3c 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -771,6 +771,7 @@ static int sugov_init(struct cpufreq_policy *policy)
return 0;

fail:
+ kobject_put(&tunables->attr_set.kobj);
policy->governor_data = NULL;
sugov_tunables_free(tunables);

--
2.21.0


2019-04-30 04:25:26

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] sched/cpufreq: Fix kobject memleak


* Tobin C. Harding <[email protected]> wrote:

> Currently error return from kobject_init_and_add() is not followed by a
> call to kobject_put(). This means there is a memory leak.
>
> Add call to kobject_put() in error path of kobject_init_and_add().
> ---
> kernel/sched/cpufreq_schedutil.c | 1 +
> 1 file changed, 1 insertion(+)

I've added your:

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

Which I suppose you intended to include?

Thanks,

Ingo

Subject: [tip:sched/urgent] sched/cpufreq: Fix kobject memleak

Commit-ID: 8bf7ab9c79f3d1a5f02ebac369f656de9ec0aca8
Gitweb: https://git.kernel.org/tip/8bf7ab9c79f3d1a5f02ebac369f656de9ec0aca8
Author: Tobin C. Harding <[email protected]>
AuthorDate: Tue, 30 Apr 2019 10:11:44 +1000
Committer: Ingo Molnar <[email protected]>
CommitDate: Tue, 30 Apr 2019 06:24:09 +0200

sched/cpufreq: Fix kobject memleak

Currently the error return path from kobject_init_and_add() is not
followed by a call to kobject_put() - which means we are leaking
the kobject.

Fix it by adding a call to kobject_put() in the error path of
kobject_init_and_add().

Signed-off-by: Tobin C. Harding <[email protected]>
Add call to kobject_put() in error path of kobject_init_and_add().
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Rafael J. Wysocki <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Tobin C. Harding <[email protected]>
Cc: Vincent Guittot <[email protected]>
Cc: Viresh Kumar <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
kernel/sched/cpufreq_schedutil.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
index 5c41ea367422..3638d2377e3c 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -771,6 +771,7 @@ out:
return 0;

fail:
+ kobject_put(&tunables->attr_set.kobj);
policy->governor_data = NULL;
sugov_tunables_free(tunables);

2019-04-30 05:57:49

by Viresh Kumar

[permalink] [raw]
Subject: Re: [tip:sched/urgent] sched/cpufreq: Fix kobject memleak

On 29-04-19, 22:52, tip-bot for Tobin C. Harding wrote:
> Commit-ID: 8bf7ab9c79f3d1a5f02ebac369f656de9ec0aca8
> Gitweb: https://git.kernel.org/tip/8bf7ab9c79f3d1a5f02ebac369f656de9ec0aca8
> Author: Tobin C. Harding <[email protected]>
> AuthorDate: Tue, 30 Apr 2019 10:11:44 +1000
> Committer: Ingo Molnar <[email protected]>
> CommitDate: Tue, 30 Apr 2019 06:24:09 +0200
>
> sched/cpufreq: Fix kobject memleak
>
> Currently the error return path from kobject_init_and_add() is not
> followed by a call to kobject_put() - which means we are leaking
> the kobject.
>
> Fix it by adding a call to kobject_put() in the error path of
> kobject_init_and_add().
>
> Signed-off-by: Tobin C. Harding <[email protected]>
> Add call to kobject_put() in error path of kobject_init_and_add().

This should have been present before the signed-off ?

> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: Linus Torvalds <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Rafael J. Wysocki <[email protected]>
> Cc: Thomas Gleixner <[email protected]>
> Cc: Tobin C. Harding <[email protected]>
> Cc: Vincent Guittot <[email protected]>
> Cc: Viresh Kumar <[email protected]>
> Link: http://lkml.kernel.org/r/[email protected]
> Signed-off-by: Ingo Molnar <[email protected]>
> ---
> kernel/sched/cpufreq_schedutil.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
> index 5c41ea367422..3638d2377e3c 100644
> --- a/kernel/sched/cpufreq_schedutil.c
> +++ b/kernel/sched/cpufreq_schedutil.c
> @@ -771,6 +771,7 @@ out:
> return 0;
>
> fail:
> + kobject_put(&tunables->attr_set.kobj);
> policy->governor_data = NULL;
> sugov_tunables_free(tunables);
>

--
viresh

Subject: [tip:sched/urgent] sched/cpufreq: Fix kobject memleak

Commit-ID: 9a4f26cc98d81b67ecc23b890c28e2df324e29f3
Gitweb: https://git.kernel.org/tip/9a4f26cc98d81b67ecc23b890c28e2df324e29f3
Author: Tobin C. Harding <[email protected]>
AuthorDate: Tue, 30 Apr 2019 10:11:44 +1000
Committer: Ingo Molnar <[email protected]>
CommitDate: Tue, 30 Apr 2019 07:57:23 +0200

sched/cpufreq: Fix kobject memleak

Currently the error return path from kobject_init_and_add() is not
followed by a call to kobject_put() - which means we are leaking
the kobject.

Fix it by adding a call to kobject_put() in the error path of
kobject_init_and_add().

Signed-off-by: Tobin C. Harding <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Rafael J. Wysocki <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Tobin C. Harding <[email protected]>
Cc: Vincent Guittot <[email protected]>
Cc: Viresh Kumar <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
kernel/sched/cpufreq_schedutil.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
index 5c41ea367422..3638d2377e3c 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -771,6 +771,7 @@ out:
return 0;

fail:
+ kobject_put(&tunables->attr_set.kobj);
policy->governor_data = NULL;
sugov_tunables_free(tunables);

2019-04-30 06:29:33

by Tobin C. Harding

[permalink] [raw]
Subject: Re: [tip:sched/urgent] sched/cpufreq: Fix kobject memleak

On Tue, Apr 30, 2019 at 11:26:27AM +0530, Viresh Kumar wrote:
> On 29-04-19, 22:52, tip-bot for Tobin C. Harding wrote:
> > Commit-ID: 8bf7ab9c79f3d1a5f02ebac369f656de9ec0aca8
> > Gitweb: https://git.kernel.org/tip/8bf7ab9c79f3d1a5f02ebac369f656de9ec0aca8
> > Author: Tobin C. Harding <[email protected]>
> > AuthorDate: Tue, 30 Apr 2019 10:11:44 +1000
> > Committer: Ingo Molnar <[email protected]>
> > CommitDate: Tue, 30 Apr 2019 06:24:09 +0200
> >
> > sched/cpufreq: Fix kobject memleak
> >
> > Currently the error return path from kobject_init_and_add() is not
> > followed by a call to kobject_put() - which means we are leaking
> > the kobject.
> >
> > Fix it by adding a call to kobject_put() in the error path of
> > kobject_init_and_add().
> >
> > Signed-off-by: Tobin C. Harding <[email protected]>
> > Add call to kobject_put() in error path of kobject_init_and_add().
>
> This should have been present before the signed-off ?

Thanks. Some face palm fails on this patch. Its hard to get good help
:)

Tobin