diff options
author | Linus Torvalds | 2020-08-04 13:38:35 -0700 |
---|---|---|
committer | Linus Torvalds | 2020-08-04 13:38:35 -0700 |
commit | 5b5d3be5d690a94be390ccf3e4db8dcb7409bf75 (patch) | |
tree | 3a5a4981e702c4a7db1f74c7c5471db248d509fc /init | |
parent | 3e4a12a1bafafecaf1631f02099e82b424967718 (diff) | |
parent | f0fe00d4972a8cd4b98cc2c29758615e4d51cdfe (diff) |
Merge tag 'var-init-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull automatic variable initialization updates from Kees Cook:
"This adds the "zero" init option from Clang, which is being used
widely in production builds of Android and Chrome OS (though it also
keeps the "pattern" init, which is better for debug builds).
- Introduce CONFIG_INIT_STACK_ALL_ZERO (Alexander Potapenko)"
* tag 'var-init-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
security: allow using Clang's zero initialization for stack variables
Diffstat (limited to 'init')
-rw-r--r-- | init/main.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/init/main.c b/init/main.c index 0ead83e86b5a..9127b240fd26 100644 --- a/init/main.c +++ b/init/main.c @@ -779,14 +779,16 @@ static void __init report_meminit(void) { const char *stack; - if (IS_ENABLED(CONFIG_INIT_STACK_ALL)) - stack = "all"; + if (IS_ENABLED(CONFIG_INIT_STACK_ALL_PATTERN)) + stack = "all(pattern)"; + else if (IS_ENABLED(CONFIG_INIT_STACK_ALL_ZERO)) + stack = "all(zero)"; else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL)) - stack = "byref_all"; + stack = "byref_all(zero)"; else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF)) - stack = "byref"; + stack = "byref(zero)"; else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_USER)) - stack = "__user"; + stack = "__user(zero)"; else stack = "off"; |