aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--security/Kconfig.hardening7
1 files changed, 7 insertions, 0 deletions
diff --git a/security/Kconfig.hardening b/security/Kconfig.hardening
index c6cb2d9b2905..107176069af3 100644
--- a/security/Kconfig.hardening
+++ b/security/Kconfig.hardening
@@ -61,6 +61,7 @@ choice
61 config GCC_PLUGIN_STRUCTLEAK_BYREF 61 config GCC_PLUGIN_STRUCTLEAK_BYREF
62 bool "zero-init structs passed by reference (strong)" 62 bool "zero-init structs passed by reference (strong)"
63 depends on GCC_PLUGINS 63 depends on GCC_PLUGINS
64 depends on !(KASAN && KASAN_STACK=1)
64 select GCC_PLUGIN_STRUCTLEAK 65 select GCC_PLUGIN_STRUCTLEAK
65 help 66 help
66 Zero-initialize any structures on the stack that may 67 Zero-initialize any structures on the stack that may
@@ -70,9 +71,15 @@ choice
70 exposures, like CVE-2017-1000410: 71 exposures, like CVE-2017-1000410:
71 https://git.kernel.org/linus/06e7e776ca4d3654 72 https://git.kernel.org/linus/06e7e776ca4d3654
72 73
74 As a side-effect, this keeps a lot of variables on the
75 stack that can otherwise be optimized out, so combining
76 this with CONFIG_KASAN_STACK can lead to a stack overflow
77 and is disallowed.
78
73 config GCC_PLUGIN_STRUCTLEAK_BYREF_ALL 79 config GCC_PLUGIN_STRUCTLEAK_BYREF_ALL
74 bool "zero-init anything passed by reference (very strong)" 80 bool "zero-init anything passed by reference (very strong)"
75 depends on GCC_PLUGINS 81 depends on GCC_PLUGINS
82 depends on !(KASAN && KASAN_STACK=1)
76 select GCC_PLUGIN_STRUCTLEAK 83 select GCC_PLUGIN_STRUCTLEAK
77 help 84 help
78 Zero-initialize any stack variables that may be passed 85 Zero-initialize any stack variables that may be passed