Re: [PATCH v2 3/5] treewide: Replace 0-element memcpy() destinations with flexible arrays

From: Kees Cook
Date: Thu Aug 26 2021 - 01:51:46 EST


On Wed, Aug 25, 2021 at 10:24:18PM -0700, Keith Packard wrote:
> Kees Cook <keescook@xxxxxxxxxxxx> writes:
>
> > In some cases, use of the flex_array() helper is needed when a flexible
> > array is part of a union.
>
> The code below seems to show that the helper is also needed when the
> flexible array is the only member of a struct? Or is this just an
> extension of the 'part of a union' clause?

That's correct. I have that documented in the DECLARE_FLEX_ARRAY macro
itself, but I mis-spoke in this changelog here (the uses were for "alone
in a struct"). I've adjusted the changelog now. :)

Thanks!

-Kees

>
> > @@ -160,7 +160,7 @@ struct bmi_cmd {
> >
> > union bmi_resp {
> > struct {
> > - u8 payload[0];
> > + DECLARE_FLEX_ARRAY(u8, payload);
> > } read_mem;
> > struct {
> > __le32 result;
>
> --
> -keith



--
Kees Cook