Re: Build regressions/improvements in v6.5-rc3

From: Kees Cook
Date: Mon Aug 14 2023 - 15:01:42 EST


On Mon, Aug 14, 2023 at 06:20:59PM +0200, Geert Uytterhoeven wrote:
> Hi Kees,
>
> On Sat, Jul 29, 2023 at 12:57 AM Kees Cook <keescook@xxxxxxxxxxxx> wrote:
> > On Mon, Jul 24, 2023 at 02:43:02PM +0200, Geert Uytterhoeven wrote:
> > > On Mon, 24 Jul 2023, Geert Uytterhoeven wrote:
> > > > JFYI, when comparing v6.5-rc3[1] to v6.5-rc2[3], the summaries are:
> > > > - build errors: +5/-0
> > >
> > > + /kisskb/src/include/linux/fortify-string.h: 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]: => 583:25, 493:25
> > >
> > > mips-gcc13/mips-allmodconfig
> > >
> > > Full context:
> > >
> > > In function 'fortify_memset_chk',
> > > inlined from 'memset_io' at /kisskb/src/arch/mips/include/asm/io.h:486:2,
> > > inlined from 'build_auth_frame' at /kisskb/src/drivers/net/wireless/legacy/ray_cs.c:2697:2:
> > > /kisskb/src/include/linux/fortify-string.h:493: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]
> > > 493 | __write_overflow_field(p_size_field, size);
> > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > In function 'fortify_memcpy_chk',
> > > inlined from 'memcpy_toio' at /kisskb/src/arch/mips/include/asm/io.h:494:2,
> > > inlined from 'translate_frame' at /kisskb/src/drivers/net/wireless/legacy/ray_cs.c:955:3,
> > > inlined from 'ray_hw_xmit.constprop' at /kisskb/src/drivers/net/wireless/legacy/ray_cs.c:912:12:
> > > /kisskb/src/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]
> > > 583 | __write_overflow_field(p_size_field, size);
> > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > >
> > > Single-element flexible array abuse in drivers/net/wireless/legacy/rayctl.h:tx_msg.var
> >
> > ^^^^
> > is this line from you or is there a tool outputting this? Because, yes,
>
> It is a line from me.
>
> (should I take it as a compliment that I start sounding like a tool? ;-)

Heh. It was so declaratory. :) I think I was hoping there was some
analyzer that could save us the pain of manually examining these
warnings.

>
> > very true:
> >
> > struct tx_msg {
> > struct tib_structure tib;
> > struct phy_header phy;
> > struct mac_header mac;
> > UCHAR var[1];
> > };
> >
> > I'll send a patch.
>
> Thanks, I noticed you took care while I was enjoying summer holidays ;-)

Awesome! Thanks for the report. :)

--
Kees Cook