Skip to content

Commit

Permalink
ubsan: disable UBSAN_ALIGNMENT under COMPILE_TEST
Browse files Browse the repository at this point in the history
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: 0887a7e ("ubsan: add trap instrumentation option")
Signed-off-by: Kees Cook <keescook@chromium.org>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
  Link: https://lore.kernel.org/linux-next/202004231224.D6B3B650@keescook/
Signed-off-by: Andrew 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: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
kees authored and torvalds committed May 8, 2020
1 parent 17e3452 commit 8d58f22
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 10 deletions.
15 changes: 6 additions & 9 deletions lib/Kconfig.ubsan
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,15 @@ config UBSAN_SANITIZE_ALL
Enabling this option will get kernel image size increased
significantly.

config UBSAN_NO_ALIGNMENT
bool "Disable checking of pointers alignment"
default y if HAVE_EFFICIENT_UNALIGNED_ACCESS
config UBSAN_ALIGNMENT
bool "Enable checks for pointers alignment"
default !HAVE_EFFICIENT_UNALIGNED_ACCESS
depends on !X86 || !COMPILE_TEST
help
This option disables the check of unaligned memory accesses.
This option should be used when building allmodconfig.
Disabling this option on architectures that support unaligned
This option enables the check of unaligned memory accesses.
Enabling this option on architectures that support unaligned
accesses may produce a lot of false positives.

config UBSAN_ALIGNMENT
def_bool !UBSAN_NO_ALIGNMENT

config TEST_UBSAN
tristate "Module for testing for undefined behavior detection"
depends on m
Expand Down
1 change: 0 additions & 1 deletion tools/testing/selftests/wireguard/qemu/debug.config
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ CONFIG_KASAN=y
CONFIG_KASAN_INLINE=y
CONFIG_UBSAN=y
CONFIG_UBSAN_SANITIZE_ALL=y
CONFIG_UBSAN_NO_ALIGNMENT=y
CONFIG_UBSAN_NULL=y
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=8192
Expand Down

0 comments on commit 8d58f22

Please sign in to comment.