An off-by-one error in loop terminantion conditions in
create_setup_data_nodes will lead to memory leak when
create_setup_data_node return error.
Signed-off-by: Sean Fu <[email protected]>
---
arch/x86/kernel/ksysfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c
index 4afc67f..cfde6c0 100644
--- a/arch/x86/kernel/ksysfs.c
+++ b/arch/x86/kernel/ksysfs.c
@@ -299,7 +299,7 @@ static int __init create_setup_data_nodes(struct kobject *parent)
return 0;
out_clean_nodes:
- for (j = i - 1; j > 0; j--)
+ for (j = i - 1; j >= 0; j--)
cleanup_setup_data_node(*(kobjp + j));
kfree(kobjp);
out_setup_data_kobj:
--
2.6.2
On Mon, Sep 11, 2017 at 08:33:21AM +0800, Sean Fu wrote:
> An off-by-one error in loop terminantion conditions in
> create_setup_data_nodes will lead to memory leak when
> create_setup_data_node return error.
>
> Signed-off-by: Sean Fu <[email protected]>
> ---
> arch/x86/kernel/ksysfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c
> index 4afc67f..cfde6c0 100644
> --- a/arch/x86/kernel/ksysfs.c
> +++ b/arch/x86/kernel/ksysfs.c
> @@ -299,7 +299,7 @@ static int __init create_setup_data_nodes(struct kobject *parent)
> return 0;
>
> out_clean_nodes:
> - for (j = i - 1; j > 0; j--)
> + for (j = i - 1; j >= 0; j--)
> cleanup_setup_data_node(*(kobjp + j));
> kfree(kobjp);
> out_setup_data_kobj:
> --
> 2.6.2
>
Appologize for the wrong subject prefix in previous email.
Resent the patch right now.
Could you please review this patch?
Thanks
Commit-ID: 7d7099433d9eaaa5a989a55f1fa354c16a3ad297
Gitweb: http://git.kernel.org/tip/7d7099433d9eaaa5a989a55f1fa354c16a3ad297
Author: Sean Fu <[email protected]>
AuthorDate: Mon, 11 Sep 2017 08:33:21 +0800
Committer: Thomas Gleixner <[email protected]>
CommitDate: Mon, 25 Sep 2017 09:36:16 +0200
x86/sysfs: Fix off-by-one error in loop termination
An off-by-one error in loop terminantion conditions in
create_setup_data_nodes() will lead to memory leak when
create_setup_data_node() failed.
Signed-off-by: Sean Fu <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
---
arch/x86/kernel/ksysfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c
index 4b0592c..8c1cc08 100644
--- a/arch/x86/kernel/ksysfs.c
+++ b/arch/x86/kernel/ksysfs.c
@@ -299,7 +299,7 @@ static int __init create_setup_data_nodes(struct kobject *parent)
return 0;
out_clean_nodes:
- for (j = i - 1; j > 0; j--)
+ for (j = i - 1; j >= 0; j--)
cleanup_setup_data_node(*(kobjp + j));
kfree(kobjp);
out_setup_data_kobj: