• Nathan Chancellor's avatar
    configs/hardening: Fix disabling UBSAN configurations · e048d668
    Nathan Chancellor authored
    The initial change that added kernel/configs/hardening.config attempted
    to disable all UBSAN sanitizers except for the array bounds one while
    turning on UBSAN_TRAP. Unfortunately, it only got the syntax for
    CONFIG_UBSAN_SHIFT correct, so configurations that are on by default
    with CONFIG_UBSAN=y such as CONFIG_UBSAN_{BOOL,ENUM} do not get disabled
    properly.
    
      CONFIG_ARCH_HAS_UBSAN=y
      CONFIG_UBSAN=y
      CONFIG_UBSAN_TRAP=y
      CONFIG_CC_HAS_UBSAN_BOUNDS_STRICT=y
      CONFIG_UBSAN_BOUNDS=y
      CONFIG_UBSAN_BOUNDS_STRICT=y
      # CONFIG_UBSAN_SHIFT is not set
      # CONFIG_UBSAN_DIV_ZERO is not set
      # CONFIG_UBSAN_UNREACHABLE is not set
      CONFIG_UBSAN_SIGNED_WRAP=y
      CONFIG_UBSAN_BOOL=y
      CONFIG_UBSAN_ENUM=y
      # CONFIG_TEST_UBSAN is not set
    
    Add the missing 'is not set' to each configuration that needs it so that
    they get disabled as intended.
    
      CONFIG_ARCH_HAS_UBSAN=y
      CONFIG_UBSAN=y
      CONFIG_UBSAN_TRAP=y
      CONFIG_CC_HAS_UBSAN_BOUNDS_STRICT=y
      CONFIG_UBSAN_BOUNDS=y
      CONFIG_UBSAN_BOUNDS_STRICT=y
      # CONFIG_UBSAN_SHIFT is not set
      # CONFIG_UBSAN_DIV_ZERO is not set
      # CONFIG_UBSAN_UNREACHABLE is not set
      CONFIG_UBSAN_SIGNED_WRAP=y
      # CONFIG_UBSAN_BOOL is not set
      # CONFIG_UBSAN_ENUM is not set
      # CONFIG_TEST_UBSAN is not set
    
    Fixes: 215199e3
    
     ("hardening: Provide Kconfig fragments for basic options")
    Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
    Link: https://lore.kernel.org/r/20240411-fix-ubsan-in-hardening-config-v1-1-e0177c80ffaa@kernel.org
    
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    e048d668
hardening.config 2.84 KB