2021-09-10 10:06:15

by Colin King

[permalink] [raw]
Subject: [PATCH][next] fs/ntfs3: Fix a memory leak on object opts

From: Colin Ian King <[email protected]>

Currently a failed allocation on sbi->upcase will cause an exit via
the label free_sbi causing a memory leak on object opts. Fix this by
re-ordering the exit paths free_opts and free_sbi so that kfree's occur
in the reverse allocation order.

Addresses-Coverity: ("Resource leak")
Fixes: 27fac77707a1 ("fs/ntfs3: Init spi more in init_fs_context than fill_super")
Signed-off-by: Colin Ian King <[email protected]>
---
fs/ntfs3/super.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
index 3cba0b5e7ac7..69f23db0d727 100644
--- a/fs/ntfs3/super.c
+++ b/fs/ntfs3/super.c
@@ -1450,10 +1450,10 @@ static int ntfs_init_fs_context(struct fs_context *fc)
fc->ops = &ntfs_context_ops;

return 0;
-free_opts:
- kfree(opts);
free_sbi:
kfree(sbi);
+free_opts:
+ kfree(opts);
return -ENOMEM;
}

--
2.32.0


2021-09-10 10:51:18

by Kari Argillander

[permalink] [raw]
Subject: Re: [PATCH][next] fs/ntfs3: Fix a memory leak on object opts

On Fri, Sep 10, 2021 at 11:02:02AM +0100, Colin King wrote:
> From: Colin Ian King <[email protected]>
>
> Currently a failed allocation on sbi->upcase will cause an exit via
> the label free_sbi causing a memory leak on object opts. Fix this by
> re-ordering the exit paths free_opts and free_sbi so that kfree's occur
> in the reverse allocation order.
>
> Addresses-Coverity: ("Resource leak")
> Fixes: 27fac77707a1 ("fs/ntfs3: Init spi more in init_fs_context than fill_super")
> Signed-off-by: Colin Ian King <[email protected]>
> ---

Thanks Colin.

Reviewed-by: Kari Argillander <[email protected]>

> fs/ntfs3/super.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
> index 3cba0b5e7ac7..69f23db0d727 100644
> --- a/fs/ntfs3/super.c
> +++ b/fs/ntfs3/super.c
> @@ -1450,10 +1450,10 @@ static int ntfs_init_fs_context(struct fs_context *fc)
> fc->ops = &ntfs_context_ops;
>
> return 0;
> -free_opts:
> - kfree(opts);
> free_sbi:
> kfree(sbi);
> +free_opts:
> + kfree(opts);
> return -ENOMEM;
> }
>
> --
> 2.32.0
>

2021-09-20 16:56:29

by Konstantin Komarov

[permalink] [raw]
Subject: Re: [PATCH][next] fs/ntfs3: Fix a memory leak on object opts



On 10.09.2021 13:50, Kari Argillander wrote:
> On Fri, Sep 10, 2021 at 11:02:02AM +0100, Colin King wrote:
>> From: Colin Ian King <[email protected]>
>>
>> Currently a failed allocation on sbi->upcase will cause an exit via
>> the label free_sbi causing a memory leak on object opts. Fix this by
>> re-ordering the exit paths free_opts and free_sbi so that kfree's occur
>> in the reverse allocation order.
>>
>> Addresses-Coverity: ("Resource leak")
>> Fixes: 27fac77707a1 ("fs/ntfs3: Init spi more in init_fs_context than fill_super")
>> Signed-off-by: Colin Ian King <[email protected]>
>> ---
>
> Thanks Colin.
>
> Reviewed-by: Kari Argillander <[email protected]>
>
>> fs/ntfs3/super.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
>> index 3cba0b5e7ac7..69f23db0d727 100644
>> --- a/fs/ntfs3/super.c
>> +++ b/fs/ntfs3/super.c
>> @@ -1450,10 +1450,10 @@ static int ntfs_init_fs_context(struct fs_context *fc)
>> fc->ops = &ntfs_context_ops;
>>
>> return 0;
>> -free_opts:
>> - kfree(opts);
>> free_sbi:
>> kfree(sbi);
>> +free_opts:
>> + kfree(opts);
>> return -ENOMEM;
>> }
>>
>> --
>> 2.32.0
>>

Hi, Colin, Kari!

Thanks for work - applied!