linux/scripts/gcc-plugins
Kees Cook 1ee60356c2 gcc-plugins: randstruct: Only warn about true flexible arrays
The randstruct GCC plugin tried to discover "fake" flexible arrays
to issue warnings about them in randomized structs. In the future
LSM overhead reduction series, it would be legal to have a randomized
struct with a 1-element array, and this should _not_ be treated as a
flexible array, especially since commit df8fc4e934 ("kbuild: Enable
-fstrict-flex-arrays=3"). Disable the 0-sized and 1-element array
discovery logic in the plugin, but keep the "true" flexible array check.

Cc: KP Singh <kpsingh@kernel.org>
Cc: linux-hardening@vger.kernel.org
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202311021532.iBwuZUZ0-lkp@intel.com/
Fixes: df8fc4e934 ("kbuild: Enable -fstrict-flex-arrays=3")
Reviewed-by: Bill Wendling <morbo@google.com>
Acked-by: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20231104204334.work.160-kees@kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
2023-11-08 14:18:57 -08:00
..
.gitignore .gitignore: prefix local generated files with a slash 2021-05-02 00:43:35 +09:00
arm_ssp_per_task_plugin.c gcc-plugins: arm-ssp: Prepare for THREAD_INFO_IN_TASK support 2021-09-27 16:54:01 +02:00
gcc-common.h gcc-plugins: Rename last_stmt() for GCC 14+ 2023-08-10 23:10:09 -07:00
gcc-generate-gimple-pass.h gcc-plugins: remove support for GCC 4.9 and older 2021-10-04 10:58:08 -07:00
gcc-generate-ipa-pass.h gcc-plugins: remove support for GCC 4.9 and older 2021-10-04 10:58:08 -07:00
gcc-generate-rtl-pass.h gcc-plugins: remove support for GCC 4.9 and older 2021-10-04 10:58:08 -07:00
gcc-generate-simple_ipa-pass.h gcc-plugins: remove support for GCC 4.9 and older 2021-10-04 10:58:08 -07:00
Kconfig randstruct: Reorganize Kconfigs and attribute macros 2022-05-08 01:33:06 -07:00
latent_entropy_plugin.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_385.RULE 2022-06-10 14:51:36 +02:00
Makefile gcc-plugins: drop -std=gnu++11 to fix GCC 13 build 2023-02-02 16:31:23 +00:00
randomize_layout_plugin.c gcc-plugins: randstruct: Only warn about true flexible arrays 2023-11-08 14:18:57 -08:00
sancov_plugin.c gcc-plugins: use KERNELVERSION for plugin version 2022-05-24 08:25:16 -07:00
stackleak_plugin.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_385.RULE 2022-06-10 14:51:36 +02:00
structleak_plugin.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_385.RULE 2022-06-10 14:51:36 +02:00