Re: [PATCH] ntfs3: use __GFP_NOWARN allocation at ntfs_fill_super()

Konstantin Komarov
2022-11-12T18:08:51Z

On 10/2/22 17:54, Tetsuo Handa wrote:
> syzbot is reporting too large allocation at ntfs_fill_super() [1], for a
> crafted filesystem can contain bogus inode->i_size. Add __GFP_NOWARN in
> order to avoid too large allocation warning, than exhausting memory by
> using kvmalloc().
>
> Link: https://syzkaller.appspot.com/bug?extid=33f3faaa0c08744f7d40 [1]
> Reported-by: syzot <syzbot+33f3faaa0c08744f7d40@syzkaller.appspotmail.com>
> Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
> ---
> fs/ntfs3/super.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
> index 47012c9bf505..374f6e4774fa 100644
> --- a/fs/ntfs3/super.c
> +++ b/fs/ntfs3/super.c
> @@ -1141,7 +1141,7 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
> goto put_inode_out;
> }
> bytes = inode->i_size;
> - sbi->def_table = t = kmalloc(bytes, GFP_NOFS);
> + sbi->def_table = t = kmalloc(bytes, GFP_NOFS | __GFP_NOWARN);
> if (!t) {
> err = -ENOMEM;
> goto put_inode_out;

Applied, thanks again for patch!