Messages in this thread | | | From | "Winkler, Tomas" <> | Subject | RE: [PATCH] mei: bus: replace zero-length array with flexible-array member | Date | Wed, 12 Feb 2020 22:19:48 +0000 |
| |
> -----Original Message----- > From: Gustavo A. R. Silva <gustavo@embeddedor.com> > Sent: Tuesday, February 11, 2020 23:08 > To: Winkler, Tomas <tomas.winkler@intel.com>; Arnd Bergmann > <arnd@arndb.de>; Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: linux-kernel@vger.kernel.org; Gustavo A. R. Silva > <gustavo@embeddedor.com> > Subject: [PATCH] mei: bus: replace zero-length array with flexible-array member > > The current codebase makes use of the zero-length array language extension to > the C90 standard, but the preferred mechanism to declare variable-length types > such as these ones is a flexible array member[1][2], introduced in C99: > > struct foo { > int stuff; > struct boo array[]; > }; > > By making use of the mechanism above, we will get a compiler warning in case > the flexible array does not occur last in the structure, which will help us prevent > some kind of undefined behavior bugs from being inadvertenly introduced[3] to > the codebase from now on. > > This issue was found with the help of Coccinelle. > > [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html > [2] https://github.com/KSPP/linux/issues/21 > [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour") > > Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Ack.
> --- > drivers/misc/mei/bus-fixup.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/misc/mei/bus-fixup.c b/drivers/misc/mei/bus-fixup.c index > 5fcac02233af..aa3648d59a8a 100644 > --- a/drivers/misc/mei/bus-fixup.c > +++ b/drivers/misc/mei/bus-fixup.c > @@ -107,7 +107,7 @@ struct mkhi_rule_id { struct mkhi_fwcaps { > struct mkhi_rule_id id; > u8 len; > - u8 data[0]; > + u8 data[]; > } __packed; > > struct mkhi_fw_ver_block { > @@ -135,7 +135,7 @@ struct mkhi_msg_hdr { > > struct mkhi_msg { > struct mkhi_msg_hdr hdr; > - u8 data[0]; > + u8 data[]; > } __packed; > > #define MKHI_OSVER_BUF_LEN (sizeof(struct mkhi_msg_hdr) + \ > -- > 2.25.0
| |