All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jaegeuk Kim <jaegeuk@kernel.org>
To: Guenter Roeck <linux@roeck-us.net>
Cc: Kees Cook <kees@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Chao Yu <chao@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	Peter Zijlstra <peterz@infradead.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Kees Cook <keescook@chromium.org>
Subject: Re: Linux 6.2-rc1
Date: Fri, 6 Jan 2023 16:06:00 -0800	[thread overview]
Message-ID: <Y7i3aKj9pfHc1s+l@google.com> (raw)
In-Reply-To: <20221228144408.GA873415@roeck-us.net>

On 12/28, Guenter Roeck wrote:
> On Tue, Dec 27, 2022 at 07:40:30PM -0800, Kees Cook wrote:
> > On December 26, 2022 9:52:12 PM PST, Guenter Roeck <linux@roeck-us.net> wrote:
> > >On Mon, Dec 26, 2022 at 05:32:28PM -0800, Kees Cook wrote:
> > >> On December 26, 2022 4:29:41 PM PST, Guenter Roeck <linux@roeck-us.net> wrote:
> > >> >On Mon, Dec 26, 2022 at 01:03:59PM -0800, Kees Cook wrote:
> > >> >> On December 26, 2022 12:56:29 PM PST, Linus Torvalds <torvalds@linux-foundation.org> wrote:
> > >> >> >On Mon, Dec 26, 2022 at 11:52 AM Guenter Roeck <linux@roeck-us.net> wrote:
> > >> >> >>
> > >> >> >> fs/f2fs/inline.c: In function 'f2fs_move_inline_dirents':
> > >> >> >> include/linux/fortify-string.h:59:33: error: '__builtin_memset' pointer overflow between offset [28, 898293814] and size [-898293787, -1] [-Werror=array-bounds]
> > >> >> >> fs/f2fs/inline.c:430:9: note: in expansion of macro 'memset'
> > >> >> >>   430 |         memset(dst.bitmap + src.nr_bitmap, 0, dst.nr_bitmap - src.nr_bitmap);
> > >> >> >>       |         ^~~~~~
> > >> >> >
> > >> >> >Well, that's unfortunate.
> > >> >> 
> > >> >> I'll look into this.
> > >> >> 
> > >> >
> > >> >I did some more testing. The problem is seen with gcc 11.3.0, but not with
> > >> >gcc 12.2.0 nor with gcc 10.3.0.
> > >> 
> > >> That's what I'd expect: 10 didn't have variable range tracking wired up to -Warray-bounds, 11 does, and we disable -Warray-bounds on 12 because of 3 separate 12-only GCC bugs.
> > >> 
> > >> > gcc bug ? Should I switch to gcc 12.2.0 for
> > >> >powerpc when build testing the latest kernel ?
> > >> 
> > >> Sure? But that'll just hide it. I suspect GCC has found a way for dst.nr_bitmap to be compile-time 27, so the size is always negative.
> > >> 
> > >dst.nr_bitmap is initialized with SIZE_OF_DENTRY_BITMAP,
> > >which is defined as:
> > >
> > >#define NR_DENTRY_IN_BLOCK      214     /* the number of dentry in a block */
> > >#define SIZE_OF_DIR_ENTRY       11      /* by byte */
> > >#define SIZE_OF_DENTRY_BITMAP   ((NR_DENTRY_IN_BLOCK + BITS_PER_BYTE - 1) / \
> > >                                        BITS_PER_BYTE)
> > >
> > >((214 + 8 - 1) / 8 = 27, so dst.nr_bitmap is indeed compile-time 27.
> > >
> > >Not sure how would know that src.nr_bitmap can be > 27, though.
> > >Am I missing something ?
> > 
> > I think it's saying it can't rule out it being larger? I.e. there is no obvious bounds checking for it. Perhaps:
> > 
> > if (src.nr_bitmap > dst.nr_bitmap) {
> >     err = -EFSCORRUPTED;
> > 		goto out;
> > }
> > 
> 
> After going through all calculations, using maximum values (or minimum
> values where appropriate) everywhere, I calculated that src.nr_bitmap
> is always <= 24. The actual inode is sanity checked in
> fs/f2fs/inode.c:sanity_check_inode().

I also cannot find any case where src.nr_bitmap > 24. May this be a GCC issue?

> 
> Also, why is this only seen when I try to build powerpc test images ?
> 
> Thanks,
> Guenter

  reply	other threads:[~2023-01-07  0:06 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-25 22:07 Linux 6.2-rc1 Linus Torvalds
2022-12-26 19:52 ` Guenter Roeck
2022-12-26 20:56   ` Linus Torvalds
2022-12-26 21:03     ` Kees Cook
2022-12-26 22:10       ` Guenter Roeck
2022-12-27  0:29       ` Guenter Roeck
2022-12-27  1:32         ` Kees Cook
2022-12-27  5:52           ` Guenter Roeck
2022-12-28  3:40             ` Kees Cook
2022-12-28 14:44               ` Guenter Roeck
2023-01-07  0:06                 ` Jaegeuk Kim [this message]
2022-12-26 22:41     ` Vlastimil Babka
2022-12-26 21:10   ` Max Filippov
2022-12-26 22:08     ` Guenter Roeck
2022-12-27  8:29 ` Build regressions/improvements in v6.2-rc1 Geert Uytterhoeven
2022-12-27  8:35   ` Geert Uytterhoeven
2022-12-27  8:35     ` Geert Uytterhoeven
2022-12-27  8:35     ` Geert Uytterhoeven
2023-01-01  1:33     ` Rob Landley
2023-01-01 12:24       ` Geert Uytterhoeven
2023-01-04  6:32         ` Michael Ellerman
2023-01-06 15:10     ` John Paul Adrian Glaubitz
2023-01-06 15:10       ` John Paul Adrian Glaubitz
2023-01-06 15:10       ` John Paul Adrian Glaubitz
2023-01-06 15:10       ` [f2fs-dev] " John Paul Adrian Glaubitz
2023-01-06 15:17       ` Geert Uytterhoeven
2023-01-06 15:17         ` Geert Uytterhoeven
2023-01-06 15:17         ` Geert Uytterhoeven
2023-01-06 15:17         ` [f2fs-dev] " Geert Uytterhoeven
2023-01-06 15:18         ` Geert Uytterhoeven
2023-01-06 15:18           ` Geert Uytterhoeven
2023-01-06 15:18           ` Geert Uytterhoeven
2023-01-06 15:18           ` Geert Uytterhoeven
2023-01-17 16:42         ` Calculating array sizes in C - was: " John Paul Adrian Glaubitz
2023-01-17 16:42           ` John Paul Adrian Glaubitz
2023-01-17 16:42           ` John Paul Adrian Glaubitz
2023-01-17 16:42           ` [f2fs-dev] " John Paul Adrian Glaubitz
2023-01-17 17:01           ` Geert Uytterhoeven
2023-01-17 17:01             ` Geert Uytterhoeven
2023-01-17 17:01             ` Geert Uytterhoeven
2023-01-17 17:01             ` [f2fs-dev] " Geert Uytterhoeven
2023-01-17 17:06             ` John Paul Adrian Glaubitz
2023-01-17 17:06               ` John Paul Adrian Glaubitz
2023-01-17 17:06               ` John Paul Adrian Glaubitz
2023-01-17 17:06               ` [f2fs-dev] " John Paul Adrian Glaubitz
2023-01-17 20:05               ` Geert Uytterhoeven
2023-01-17 20:05                 ` Geert Uytterhoeven
2023-01-17 20:05                 ` Geert Uytterhoeven
2023-01-17 20:05                 ` Geert Uytterhoeven
2023-01-17 20:37                 ` [f2fs-dev] " John Paul Adrian Glaubitz
2023-01-17 20:37                   ` John Paul Adrian Glaubitz
2023-01-17 20:37                   ` John Paul Adrian Glaubitz
2023-01-17 20:37                   ` John Paul Adrian Glaubitz
2023-01-19 22:11                   ` [f2fs-dev] " Michael.Karcher
2023-01-19 22:11                     ` Michael.Karcher
2023-01-19 22:11                     ` Michael.Karcher
2023-01-19 22:11                     ` Michael.Karcher
2023-01-20  3:31                     ` Rob Landley
2023-01-20  3:31                       ` [f2fs-dev] " Rob Landley
2023-01-20  3:31                       ` Rob Landley
2023-01-20  3:31                       ` Rob Landley
2023-01-20 10:53                       ` Segher Boessenkool
2023-01-20 10:53                         ` Segher Boessenkool
2023-01-20 10:53                         ` Segher Boessenkool
2023-01-20 10:53                         ` [f2fs-dev] " Segher Boessenkool
2023-01-20 11:42                         ` David Laight
2023-01-20 11:42                           ` David Laight
2023-01-20 11:42                           ` David Laight
2023-01-20 18:29                         ` Michael.Karcher
2023-01-20 18:29                           ` Michael.Karcher
2023-01-20 18:29                           ` Michael.Karcher
2023-01-20 18:29                           ` [f2fs-dev] " Michael.Karcher
2023-01-20  8:49                     ` John Paul Adrian Glaubitz
2023-01-20  8:49                       ` John Paul Adrian Glaubitz
2023-01-20  8:49                       ` John Paul Adrian Glaubitz
2023-01-20  8:49                       ` [f2fs-dev] " John Paul Adrian Glaubitz
2023-01-20 19:29                       ` Michael Karcher
2023-01-20 19:29                         ` Michael Karcher
2023-01-20 19:29                         ` Michael Karcher
2023-01-21 21:26                         ` John Paul Adrian Glaubitz
2023-01-21 21:26                           ` John Paul Adrian Glaubitz
2023-01-21 21:26                           ` John Paul Adrian Glaubitz
2023-01-21 21:26                           ` [f2fs-dev] " John Paul Adrian Glaubitz
2023-01-06 15:39     ` Alex Deucher
2023-01-06 15:39       ` Alex Deucher
2023-01-06 15:39       ` Alex Deucher
2023-01-06 15:39       ` [f2fs-dev] " Alex Deucher
2023-01-04 19:01 ` Linux 6.2-rc1 Pali Rohár
2023-01-04 19:25   ` Linus Torvalds
2023-01-04 20:56     ` Pali Rohár
2023-01-04 21:27       ` Pali Rohár
2023-01-04 21:32       ` Linus Torvalds
2023-01-04 21:43         ` Jens Axboe
2023-01-05 11:25           ` Greg Kroah-Hartman
2023-01-05 15:26             ` Jens Axboe
2023-01-05 17:42           ` Pali Rohár
2023-01-05 17:45             ` Jens Axboe
2023-01-05 19:06               ` Linus Torvalds
2023-01-05 19:22                 ` Pali Rohár
2023-01-05 19:40                 ` Jens Axboe
2023-01-05 20:03                   ` Linus Torvalds
2023-01-05 20:33                     ` Jens Axboe
2023-01-06 16:58                       ` Pali Rohár
2023-01-06 17:04                         ` Jens Axboe
2023-01-28 19:34                           ` pktcdvd Pali Rohár
2023-01-28 19:43                             ` pktcdvd Linus Torvalds
2023-01-29 21:53                               ` pktcdvd Jens Axboe
2023-01-29 21:55                             ` pktcdvd Jens Axboe
2023-01-29 22:21                               ` pktcdvd Pali Rohár
2023-01-29 22:34                                 ` pktcdvd Jens Axboe

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=Y7i3aKj9pfHc1s+l@google.com \
    --to=jaegeuk@kernel.org \
    --cc=chao@kernel.org \
    --cc=kees@kernel.org \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=ndesaulniers@google.com \
    --cc=peterz@infradead.org \
    --cc=torvalds@linux-foundation.org \
    --cc=vbabka@suse.cz \
    /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.