All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tigran Aivazian <aivazian.tigran@gmail.com>
To: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-fsdevel@vger.kernel.org,
	syzbot <syzbot+71c6b5d68e91149fc8a4@syzkaller.appspotmail.com>,
	syzkaller-bugs <syzkaller-bugs@googlegroups.com>
Subject: Re: [PATCH] bfs: add sanity check at bfs_fill_super().
Date: Thu, 14 Jun 2018 13:11:54 +0100	[thread overview]
Message-ID: <CAK+_RLnk4TSxYpm-P0iVQCnhzp4OpL2RegULFDep1GHNQmTkNQ@mail.gmail.com> (raw)
In-Reply-To: <19e36f90-d17e-ca6f-2c6e-11a712dc6d21@i-love.sakura.ne.jp>

Thank you. Please see comments below:

On 14 June 2018 at 11:45, Tetsuo Handa
<penguin-kernel@i-love.sakura.ne.jp> wrote:
> (Which patch did you mean? Hmm, I paste both patches instead of waiting for your answer.)

I only meant the BFS patch.

> commit 0c54bbdb89992eeff50866b64366a1a0cbd0e6fb
> Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
> Date:   Sat May 26 14:15:41 2018 +1000
>
>     bfs: add sanity check at bfs_fill_super()
>
>     syzbot is reporting too large memory allocation at bfs_fill_super() [1].
>     Since file system image is corrupted such that bfs_sb->s_start == 0,
>     bfs_fill_super() is trying to allocate 8MB of continuous memory.  Fix this
>     by adding a sanity check on bfs_sb->s_start, __GFP_NOWARN and printf().
>
>     [1] https://syzkaller.appspot.com/bug?id=16a87c236b951351374a84c8a32f40edbc034e96
>
>     Link: http://lkml.kernel.org/r/1525862104-3407-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp
>     Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
>     Reported-by: syzbot <syzbot+71c6b5d68e91149fc8a4@syzkaller.appspotmail.com>
>     Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
>     Cc: Tigran Aivazian <aivazian.tigran@gmail.com>
>     Cc: Matthew Wilcox <willy@infradead.org>
>     Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
>     Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
>
> diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c
> index 9a69392..d81c148 100644
> --- a/fs/bfs/inode.c
> +++ b/fs/bfs/inode.c
> @@ -350,7 +350,8 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent)
>
>         s->s_magic = BFS_MAGIC;
>
> -       if (le32_to_cpu(bfs_sb->s_start) > le32_to_cpu(bfs_sb->s_end)) {
> +       if (le32_to_cpu(bfs_sb->s_start) > le32_to_cpu(bfs_sb->s_end) ||
> +           le32_to_cpu(bfs_sb->s_start) < BFS_BSIZE) {
>                 printf("Superblock is corrupted\n");
>                 goto out1;
>         }

Yes, this is acceptable.

> @@ -359,9 +360,11 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent)
>                                         sizeof(struct bfs_inode)
>                                         + BFS_ROOT_INO - 1;
>         imap_len = (info->si_lasti / 8) + 1;
> -       info->si_imap = kzalloc(imap_len, GFP_KERNEL);
> -       if (!info->si_imap)
> +       info->si_imap = kzalloc(imap_len, GFP_KERNEL | __GFP_NOWARN);
> +       if (!info->si_imap) {
> +               printf("Cannot allocate %u bytes\n", imap_len);
>                 goto out1;
> +       }

This is unnecessary. As Andrew Morton pointed out, if people set
panic_on_warn then they do really want a panic on allocation failure
warnings. Please update the patch with just the above sanity check for
s_start < BFS_BSIZE.

Kind regards,
Tigran

  reply	other threads:[~2018-06-14 12:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-09 10:35 [PATCH] bfs: add sanity check at bfs_fill_super() Tetsuo Handa
2018-05-09 23:06 ` Andrew Morton
     [not found]   ` <201805092346.w49NkINl045657@www262.sakura.ne.jp>
2018-05-09 23:53     ` Andrew Morton
2018-06-13 13:33       ` Tetsuo Handa
2018-06-13 13:49         ` Tigran Aivazian
2018-06-13 16:00           ` Dmitry Vyukov
2018-06-14 12:23             ` Tigran Aivazian
2018-06-14 12:38               ` Dmitry Vyukov
2018-06-14 13:05                 ` Tigran Aivazian
2018-06-14 13:12                   ` Dmitry Vyukov
2018-06-14 13:28                   ` Tetsuo Handa
2018-06-14 15:13                     ` Tigran Aivazian
2018-06-14 16:15                       ` Tigran Aivazian
2018-06-14 19:00                         ` Tigran Aivazian
2018-06-14 22:18                           ` Tetsuo Handa
2018-06-15 10:45                             ` Tigran Aivazian
2018-06-13 22:09           ` Tetsuo Handa
2018-06-14  7:38             ` Tigran Aivazian
2018-06-14 10:45               ` Tetsuo Handa
2018-06-14 12:11                 ` Tigran Aivazian [this message]
2018-05-10  0:53 ` Matthew Wilcox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK+_RLnk4TSxYpm-P0iVQCnhzp4OpL2RegULFDep1GHNQmTkNQ@mail.gmail.com \
    --to=aivazian.tigran@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=syzbot+71c6b5d68e91149fc8a4@syzkaller.appspotmail.com \
    --cc=syzkaller-bugs@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.