lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 28 Sep 2020 10:08:44 +0100
From:   Tigran Aivazian <aivazian.tigran@...il.com>
To:     Dmitry Vyukov <dvyukov@...gle.com>
Cc:     syzbot <syzbot+54b10a5da9e59f1ed979@...kaller.appspotmail.com>,
        LKML <linux-kernel@...r.kernel.org>,
        syzkaller-bugs <syzkaller-bugs@...glegroups.com>
Subject: Re: WARNING: filesystem loop0 was created with 512 inodes, the real
 maximum is 511, mounting anyway

On Mon, 28 Sep 2020 at 09:29, Dmitry Vyukov <dvyukov@...gle.com> wrote:
> On Mon, Sep 28, 2020 at 10:23 AM Tigran Aivazian
> > No, this is not an issue. In the latest change to BFS I added the
> > following comment to the header fs/bfs/bfs.h, which explains it:
> >
> > /* In theory BFS supports up to 512 inodes, numbered from 2 (for /) up
> > to 513 inclusive.
> >    In actual fact, attempting to create the 512th inode (i.e. inode
> > No. 513 or file No. 511)
> >    will fail with ENOSPC in bfs_add_entry(): the root directory cannot
> > contain so many entries, counting '..'.
> >    So, mkfs.bfs(8) should really limit its -N option to 511 and not
> > 512. For now, we just print a warning
> >    if a filesystem is mounted with such "impossible to fill up" number
> > of inodes */
>
> There are rules for use of "WARNING" in output required to support
> kernel testing:
> https://github.com/torvalds/linux/blob/master/include/asm-generic/bug.h#L67-L80
> This seems to be triggerable by exteranal inputs and breaks these rules.

Thank you, I didn't know about these rules. Ok, then, since this
warning does not "need prompt attention if it should ever occur at
runtime", the easiest solution is to change "WARNING" to lower case
"warning" in that printk in fs/bfs/inode.c:

--- fs/bfs/inode.c.0 2020-09-28 10:03:00.658549556 +0100
+++ fs/bfs/inode.c 2020-09-28 10:03:05.408548250 +0100
@@ -351,7 +351,7 @@

  info->si_lasti = (le32_to_cpu(bfs_sb->s_start) - BFS_BSIZE) /
sizeof(struct bfs_inode) + BFS_ROOT_INO - 1;
  if (info->si_lasti == BFS_MAX_LASTI)
- printf("WARNING: filesystem %s was created with 512 inodes, the real
maximum is 511, mounting anyway\n", s->s_id);
+ printf("warning: filesystem %s was created with 512 inodes, the real
maximum is 511, mounting anyway\n", s->s_id);
  else if (info->si_lasti > BFS_MAX_LASTI) {
  printf("Impossible last inode number %lu > %d on %s\n",
info->si_lasti, BFS_MAX_LASTI, s->s_id);
  goto out1;

If you want to submit this patch to the appropriate place(s), feel
free to do this -- I approve it. If the comment in asm/bug.h is
inaccurate and its mention of "BUG/WARNING" implies the lowercase
"bug/warning" also, then one can remove the prefix "warning: " from
the patch altogether and proper case "filesystem" to "Filesystem".

Kind regards,
Tigran

Acked-By: Tigran Aivazian <aivazian.tigran@...il.com>
Approved-By: Tigran Aivazian <aivazian.tigran@...il.com>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ