History

ubsan: allow to disable the null sanitizer

Some architectures use a hardware defined structure at address zero. Checking for a null pointer will result in many ubsan reports. Allow users to disable the null sanitizer.

Christian Borntraeger committed 10 years ago

Commit 725c4d21 parent f2961902 files · +15 −1Browse files

Unified · Split

2 files
  1. lib/Kconfig.ubsan +11 −0
  2. scripts/Makefile.ubsan +4 −1
lib/Kconfig.ubsan+11−0
@@ -1,6 +1,9 @@
11 config ARCH_HAS_UBSAN_SANITIZE_ALL
22 bool
33
4+config ARCH_WANTS_UBSAN_NO_NULL
5+ def_bool n
6+
47 config UBSAN
58 bool "Undefined behaviour sanity checker"
69 help
@@ -34,3 +37,11 @@ config UBSAN_ALIGNMENT · 27 unmodified lines
3437 This option enables detection of unaligned memory accesses.
3538 Enabling this option on architectures that support unaligned
3639 accesses may produce a lot of false positives.
40+
41+config UBSAN_NULL
42+ bool "Enable checking of null pointers"
43+ depends on UBSAN
44+ default y if !ARCH_WANTS_UBSAN_NO_NULL
45+ help
46+ This option enables detection of memory accesses via a
47+ null pointer.
scripts/Makefile.ubsan+4−1
@@ -3,7 +3,6 @@ ifdef CONFIG_UBSAN · 2 unmodified lines
33 CFLAGS_UBSAN += $(call cc-option, -fsanitize=integer-divide-by-zero)
44 CFLAGS_UBSAN += $(call cc-option, -fsanitize=unreachable)
55 CFLAGS_UBSAN += $(call cc-option, -fsanitize=vla-bound)
6− CFLAGS_UBSAN += $(call cc-option, -fsanitize=null)
76 CFLAGS_UBSAN += $(call cc-option, -fsanitize=signed-integer-overflow)
87 CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds)
98 CFLAGS_UBSAN += $(call cc-option, -fsanitize=object-size)
@@ -14,4 +13,8 @@ ifdef CONFIG_UBSAN · 4 unmodified lines
1413 ifdef CONFIG_UBSAN_ALIGNMENT
1514 CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment)
1615 endif
16+
17+ifdef CONFIG_UBSAN_NULL
18+ CFLAGS_UBSAN += $(call cc-option, -fsanitize=null)
19+endif
1720 endif