x86/fpu: Replace zero-length array in struct xregs_state with flexible-array member
authorGustavo A. R. Silva <gustavoars@kernel.org>
Tue, 10 Jan 2023 01:40:38 +0000 (19:40 -0600)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 19 Jan 2023 20:59:35 +0000 (21:59 +0100)
Zero-length arrays are deprecated [1] and have to be replaced by C99
flexible-array members.

This helps with the ongoing efforts to tighten the FORTIFY_SOURCE routines
on memcpy() and help to make progress towards globally enabling
-fstrict-flex-arrays=3 [2]

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays
Link: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/602902.html
Link: https://github.com/KSPP/linux/issues/78
Link: https://lore.kernel.org/r/Y7zCFpa2XNs/o9YQ@work
arch/x86/include/asm/fpu/types.h

index eb7cd11..7f6d858 100644 (file)
@@ -321,7 +321,7 @@ struct xstate_header {
 struct xregs_state {
        struct fxregs_state             i387;
        struct xstate_header            header;
-       u8                              extended_state_area[0];
+       u8                              extended_state_area[];
 } __attribute__ ((packed, aligned (64)));
 
 /*