Commit 8d58f222 authored by Kees Cook's avatar Kees Cook Committed by Linus Torvalds

ubsan: disable UBSAN_ALIGNMENT under COMPILE_TEST

The documentation for UBSAN_ALIGNMENT already mentions that it should
not be used on all*config builds (and for efficient-unaligned-access
architectures), so just refactor the Kconfig to correctly implement this
so randconfigs will stop creating insane images that freak out objtool
under CONFIG_UBSAN_TRAP (due to the false positives producing functions
that never return, etc).

Link: http://lkml.kernel.org/r/202005011433.C42EA3E2D@keescook
Fixes: 0887a7eb ("ubsan: add trap instrumentation option")
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
  Link: https://lore.kernel.org/linux-next/202004231224.D6B3B650@keescook/Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 17e34526
...@@ -60,18 +60,15 @@ config UBSAN_SANITIZE_ALL ...@@ -60,18 +60,15 @@ config UBSAN_SANITIZE_ALL
Enabling this option will get kernel image size increased Enabling this option will get kernel image size increased
significantly. significantly.
config UBSAN_NO_ALIGNMENT config UBSAN_ALIGNMENT
bool "Disable checking of pointers alignment" bool "Enable checks for pointers alignment"
default y if HAVE_EFFICIENT_UNALIGNED_ACCESS default !HAVE_EFFICIENT_UNALIGNED_ACCESS
depends on !X86 || !COMPILE_TEST
help help
This option disables the check of unaligned memory accesses. This option enables the check of unaligned memory accesses.
This option should be used when building allmodconfig. Enabling this option on architectures that support unaligned
Disabling this option on architectures that support unaligned
accesses may produce a lot of false positives. accesses may produce a lot of false positives.
config UBSAN_ALIGNMENT
def_bool !UBSAN_NO_ALIGNMENT
config TEST_UBSAN config TEST_UBSAN
tristate "Module for testing for undefined behavior detection" tristate "Module for testing for undefined behavior detection"
depends on m depends on m
......
...@@ -25,7 +25,6 @@ CONFIG_KASAN=y ...@@ -25,7 +25,6 @@ CONFIG_KASAN=y
CONFIG_KASAN_INLINE=y CONFIG_KASAN_INLINE=y
CONFIG_UBSAN=y CONFIG_UBSAN=y
CONFIG_UBSAN_SANITIZE_ALL=y CONFIG_UBSAN_SANITIZE_ALL=y
CONFIG_UBSAN_NO_ALIGNMENT=y
CONFIG_UBSAN_NULL=y CONFIG_UBSAN_NULL=y
CONFIG_DEBUG_KMEMLEAK=y CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=8192 CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=8192
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment