Messages in this thread | | | Date | Wed, 28 Jun 2023 20:48:19 -0700 | From | Kees Cook <> | Subject | Re: Build error in crypto/marvell/cesa/cipher.c |
| |
On Wed, Jun 28, 2023 at 08:13:25PM -0700, Linus Torvalds wrote: > So I don't see anything that has changed, and I suspect the only > change is that my compiler version changed, but my arm64 build fails > right now with FORTIFY_STRING enabled. > > On arm64 I now get this warning: > > In function 'fortify_memcpy_chk', > inlined from 'mv_cesa_des3_ede_setkey' and > drivers/crypto/marvell/cesa/cipher.c:307:2: > ./include/linux/fortify-string.h:583:25: error: call to > '__write_overflow_field' declared with attribute warning: detected > write beyond size of field (1st parameter); maybe use struct_group()? > [-Werror=attribute-warning[
This was fixed very recently here: https://lore.kernel.org/all/20230523083313.899332-1-arnd@kernel.org/ and Herbert took it.
I assume the crypto tree hasn't been merged yet?
> Kees, any idea why I'm seeing it now? Is it the new > -fstrict-flex-arrays=3? And if so, why? None of this is about flex > arrays...
The unexpected bit is that without -fstrict-flex-arrays=3 (i.e. the default since the dawn of time), the compiler treats any array that happens to be the last struct member as a flexible array. So with it enabled, FORTIFY_SOURCE gains coverage over things it should have been examining before.
-- Kees Cook
| |