kconfig.h: Include compiler types to avoid missed struct attributes
PATCH 1/1 kconfig.h: Include compiler types to avoid missed struct attributes
The header files for some structures could get included in such a way that struct attributes (specifically __randomize_layout from path.h) would be parsed as variable names instead of attributes. This could lead to some instances of a structure being unrandomized, causing nasty GPFs, etc.
This patch makes sure the compiler_types.h header is included in kconfig.h so that we've always got types and struct attributes defined, since kconfig.h is included from the compiler command line.
Reported-by Patrick McLean <[email protected]>
Reported-by Maciej S. Szmigiero <[email protected]>
Fixes 3859a271a003 ("randstruct: Mark various structs for randomization")
Suggested-by Linus Torvalds <[email protected]>
Signed-off-by Kees Cook <[email protected]>
---
I'm sending this anyway, in case Maciej or Patrick want to give it a test...
--- include/linux/kconfig.h | 3 +++ 1 file changed, 3 insertions(+)
include/linux/kconfig.h +3 -0
@@ -64,4 +64,7 @@*/ #define IS_ENABLED (option) __or(IS_BUILTIN(option), IS_MODULE(option)) +/* Make sure we always have all types and struct attributes defined. */ +#include <linux/compiler_types.h> +#endif /* __LINUX_KCONFIG_H */
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security