path: root/lib/Kconfig.ubsan
diff options
authorAndrey Ryabinin <>2021-02-25 17:22:42 -0800
committerLinus Torvalds <>2021-02-26 09:41:05 -0800
commit6aaa31aeb9cf260e1b7155cc11ec864f052db5ec (patch)
tree4546f94fd7723de6c3c700b0eac658e910c63e30 /lib/Kconfig.ubsan
parentd54ce6158e354f5358a547b96299ecd7f3725393 (diff)
ubsan: remove overflow checks
Since GCC 8.0 -fsanitize=signed-integer-overflow doesn't work with -fwrapv. -fwrapv makes signed overflows defines and GCC essentially disables ubsan checks. On GCC < 8.0 -fwrapv doesn't have influence on -fsanitize=signed-integer-overflow setting, so it kinda works but generates false-positves and violates uaccess rules: lib/iov_iter.o: warning: objtool: iovec_from_user()+0x22d: call to __ubsan_handle_add_overflow() with UACCESS enabled Disable signed overflow checks to avoid these problems. Remove unsigned overflow checks as well. Unsigned overflow appeared as side effect of commit cdf8a76fda4a ("ubsan: move cc-option tests into Kconfig"), but it never worked (kernel doesn't boot). And unsigned overflows are allowed by C standard, so it just pointless. Link: Signed-off-by: Andrey Ryabinin <> Acked-by: Peter Zijlstra (Intel) <> Cc: Josh Poimboeuf <> Cc: Randy Dunlap <> Cc: Stephen Rothwell <> Cc: Dmitry Vyukov <> Cc: Kees Cook <> Cc: Alexander Viro <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'lib/Kconfig.ubsan')
1 files changed, 0 insertions, 17 deletions
diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan
index 3a0b1c930733..e5372a13511d 100644
--- a/lib/Kconfig.ubsan
+++ b/lib/Kconfig.ubsan
@@ -112,23 +112,6 @@ config UBSAN_UNREACHABLE
This option enables -fsanitize=unreachable which checks for control
flow reaching an expected-to-be-unreachable position.
- bool "Perform checking for signed arithmetic overflow"
- default UBSAN
- depends on $(cc-option,-fsanitize=signed-integer-overflow)
- help
- This option enables -fsanitize=signed-integer-overflow which checks
- for overflow of any arithmetic operations with signed integers.
- bool "Perform checking for unsigned arithmetic overflow"
- depends on $(cc-option,-fsanitize=unsigned-integer-overflow)
- depends on !X86_32 # avoid excessive stack usage on x86-32/clang
- help
- This option enables -fsanitize=unsigned-integer-overflow which checks
- for overflow of any arithmetic operations with unsigned integers. This
- currently causes x86 to fail to boot.
bool "Perform checking for accesses beyond the end of objects"
default UBSAN