[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3ab153ec-2798-da4c-f7b1-81b0ac8b0c5b@roeck-us.net>
Date: Tue, 31 Aug 2021 12:40:53 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: Kees Cook <keescook@...omium.org>
Cc: linux-kernel@...r.kernel.org, Arnd Bergmann <arnd@...db.de>,
Masahiro Yamada <masahiroy@...nel.org>,
linux-kbuild@...r.kernel.org,
"Gustavo A . R . Silva" <gustavoars@...nel.org>,
Rasmus Villemoes <linux@...musvillemoes.dk>,
Keith Packard <keithp@...thp.com>,
Dan Williams <dan.j.williams@...el.com>,
Daniel Vetter <daniel.vetter@...ll.ch>,
clang-built-linux@...glegroups.com, linux-hardening@...r.kernel.org
Subject: Re: [PATCH v3 4/5] Makefile: Enable -Warray-bounds
Hi Kees,
On 8/31/21 10:46 AM, Kees Cook wrote:
> On Mon, Aug 30, 2021 at 09:31:28PM -0700, Guenter Roeck wrote:
>> On Fri, Aug 27, 2021 at 09:30:14AM -0700, Kees Cook wrote:
>>> With the recent fixes for flexible arrays and expanded FORTIFY_SOURCE
>>> coverage, it is now possible to enable -Warray-bounds. Since both
>>> GCC and Clang include -Warray-bounds in -Wall, we just need to stop
>>> disabling it.
>>>
>>> Cc: Arnd Bergmann <arnd@...db.de>
>>> Cc: Masahiro Yamada <masahiroy@...nel.org>
>>> Cc: linux-kbuild@...r.kernel.org
>>> Co-developed-by: Gustavo A. R. Silva <gustavoars@...nel.org>
>>> Signed-off-by: Gustavo A. R. Silva <gustavoars@...nel.org>
>>> Signed-off-by: Kees Cook <keescook@...omium.org>
>>> ---
>>> Makefile | 1 -
>>> 1 file changed, 1 deletion(-)
>>>
>>> diff --git a/Makefile b/Makefile
>>> index e4f5895badb5..8e7e73a642e2 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -995,7 +995,6 @@ KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
>>>
>>> # We'll want to enable this eventually, but it's not going away for 5.7 at least
>>> KBUILD_CFLAGS += $(call cc-disable-warning, zero-length-bounds)
>>> -KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
>>> KBUILD_CFLAGS += $(call cc-disable-warning, stringop-overflow)
>>>
>>
>> This patch causes 'alpha' builds to fail when trying to build an image with
>> gcc 11.2.
>>
>> In file included from include/linux/string.h:20,
>> from include/linux/bitmap.h:11,
>> from include/linux/cpumask.h:12,
>> from include/linux/smp.h:13,
>> from include/linux/lockdep.h:14,
>> from include/linux/spinlock.h:63,
>> from include/linux/mmzone.h:8,
>> from include/linux/gfp.h:6,
>> from include/linux/mm.h:10,
>> from include/linux/pagemap.h:8,
>> from arch/alpha/mm/init.c:10:
>> In function '__memset',
>> inlined from '__bad_pagetable' at arch/alpha/mm/init.c:79:2:
>> arch/alpha/include/asm/string.h:37:32: error: '__builtin_memset' offset [0, 8191] is out of the bounds [0, 0] [-Werror=array-bounds]
>> 37 | return __builtin_memset(s, c, n);
>> | ^~~~~~~~~~~~~~~~~~~~~~~~~
>> In function '__memset',
>> inlined from '__bad_page' at arch/alpha/mm/init.c:86:2:
>> arch/alpha/include/asm/string.h:37:32: error: '__builtin_memset' offset [0, 8191] is out of the bounds [0, 0] [-Werror=array-bounds]
>> 37 | return __builtin_memset(s, c, n);
>> | ^~~~~~~~~~~~~~~~~~~~~~~~~
>> In function '__memset',
>> inlined from 'paging_init' at arch/alpha/mm/init.c:256:2:
>> arch/alpha/include/asm/string.h:37:32: error: '__builtin_memset' offset [0, 8191] is out of the bounds [0, 0] [-Werror=array-bounds]
>> 37 | return __builtin_memset(s, c, n);
>>
>> Seen in next-20210830.
>
> Ah-ha, thanks for the report! I didn't see this in my builds -- what
> config target did you use for this?
>
The configuration doesn't matter; it fails for me for all configurations,
including defconfig, alllnoconfig, and allmodconfig.
Key is to use gcc 11.2. The image builds just fine with gcc 9.4 and 10.3.
Guenter
Powered by blists - more mailing lists