Re: [PATCH v2 1/3] fs/ntfs3: Fix memory leak if fill_super failed

From: Konstantin Komarov
Date: Wed Sep 29 2021 - 12:55:19 EST




On 28.09.2021 20:44, Kari Argillander wrote:
> On Tue, Sep 28, 2021 at 08:17:29PM +0300, Konstantin Komarov wrote:
>> Restore fc->s_fs_info to free memory allocated in ntfs_init_fs_context.
>>
>> Signed-off-by: Konstantin Komarov <almaz.alexandrovich@xxxxxxxxxxxxxxxxxxxx>
>> ---
>> fs/ntfs3/super.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
>> index 800897777eb0..aff90f70e7bf 100644
>> --- a/fs/ntfs3/super.c
>> +++ b/fs/ntfs3/super.c
>> @@ -1242,6 +1242,10 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
>> return 0;
>> out:
>> iput(inode);
>> +
>> + /* Restore fc->s_fs_info to free memory allocated in ntfs_init_fs_context. */
>> + fc->s_fs_info = sbi;
>> +
>
> Nack. fc->s_fs_info is already pointing to sbi. We null this just before
> we exit so it is impossible to be anything else in failure case.
>

We have seen memory leak once, but looking at the code of function
I can't point where it was caused. Will try to reproduce again.
For now will commit only
"Reject mount if boot's cluster size < media sector size" and
"Refactoring of ntfs_init_from_boot".

> fc->fs_private = NULL;
> fc->s_fs_info = NULL;
>
> return 0;
> out:
> iput(inode);
>
>> return err;
>> }
>>
>> --
>> 2.33.0
>>
>>