mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 11:06:41 -05:00
ubsan/overflow: Enable pattern exclusions
To make integer wrap-around mitigation actually useful, the associated sanitizers must not instrument cases where the wrap-around is explicitly defined (e.g. "-2UL"), being tested for (e.g. "if (a + b < a)"), or where it has no impact on code flow (e.g. "while (var--)"). Enable pattern exclusions for the integer wrap sanitizers. Reviewed-by: Justin Stitt <justinstitt@google.com> Link: https://lore.kernel.org/r/20250307041914.937329-2-kees@kernel.org Signed-off-by: Kees Cook <kees@kernel.org>
This commit is contained in:
@@ -120,6 +120,7 @@ config UBSAN_INTEGER_WRAP
|
||||
bool "Perform checking for integer arithmetic wrap-around"
|
||||
default UBSAN
|
||||
depends on !COMPILE_TEST
|
||||
depends on $(cc-option,-fsanitize-undefined-ignore-overflow-pattern=all)
|
||||
depends on $(cc-option,-fsanitize=signed-integer-overflow)
|
||||
depends on $(cc-option,-fsanitize=unsigned-integer-overflow)
|
||||
depends on $(cc-option,-fsanitize=implicit-signed-integer-truncation)
|
||||
|
||||
@@ -15,6 +15,7 @@ ubsan-cflags-$(CONFIG_UBSAN_TRAP) += $(call cc-option,-fsanitize-trap=undefined
|
||||
export CFLAGS_UBSAN := $(ubsan-cflags-y)
|
||||
|
||||
ubsan-integer-wrap-cflags-$(CONFIG_UBSAN_INTEGER_WRAP) += \
|
||||
-fsanitize-undefined-ignore-overflow-pattern=all \
|
||||
-fsanitize=signed-integer-overflow \
|
||||
-fsanitize=unsigned-integer-overflow \
|
||||
-fsanitize=implicit-signed-integer-truncation \
|
||||
|
||||
Reference in New Issue
Block a user