Skip to content
  • Kees Cook's avatar
    Makefile: introduce CONFIG_CC_STACKPROTECTOR_AUTO · 44c6dc94
    Kees Cook authored
    Nearly all modern compilers support a stack-protector option, and nearly
    all modern distributions enable the kernel stack-protector, so enabling
    this by default in kernel builds would make sense.  However, Kconfig does
    not have knowledge of available compiler features, so it isn't safe to
    force on, as this would unconditionally break builds for the compilers or
    architectures that don't have support.  Instead, this introduces a new
    option, CONFIG_CC_STACKPROTECTOR_AUTO, which attempts to discover the best
    possible stack-protector available, and will allow builds to proceed even
    if the compiler doesn't support any stack-protector.
    
    This option is made the default so that kernels built with modern
    compilers will be protected-by-default against stack buffer overflows,
    avoiding things like the recent BlueBorne attack.  Selection of a specific
    stack-protector option remains available, including disabling it.
    
    Additionally, tiny.config is adjusted to use CC_STACKPROTECTOR_NONE, since
    that's the option with the least code size (and it used to be the default,
    so we have to explicitly choose it there now).
    
    Link: http://lkml.kernel.org/r/1510076320-69931-4-git-send-email-keescook@chromium.org
    
    
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Tested-by: default avatarLaura Abbott <labbott@redhat.com>
    Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Josh Triplett <josh@joshtriplett.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    44c6dc94