With gcc-8 fsanitize=null become very noisy. GCC started to complain about things like &a->b, where a is NULL pointer. There is no NULL dereference, we just calculate address to struct member. Its technically undefined behavior so UBSAN is correct to report it. But as long as there is no real NULL-dereference, I think, we should be fine. -fno-delete-null-pointer-checks compiler flag should protect us from any consequences. So lets just no use -fsanitize=null as its not useful for us. If there is a real NULL-deref we will see crash. Even if userspace mapped something at NULL (root can do this), with things like SMAP should catch the issue. MTK-Commit-Id: f1930c2d749f2c4926d6ff592cecbe4c3d480e6f Change-Id: Ic21819a261dc160440d45ea974cd8acfdcbddb26 Link: http://lkml.kernel.org/r/20180802153209.813-1-aryabinin@virtuozzo.com Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: James Hsu <james.hsu@mediatek.com> CR-Id: ALPS05256073 Feature: Kernel Sanitizer
39 lines
1.3 KiB
Plaintext
39 lines
1.3 KiB
Plaintext
config ARCH_HAS_UBSAN_SANITIZE_ALL
|
|
bool
|
|
|
|
config UBSAN
|
|
bool "Undefined behaviour sanity checker"
|
|
help
|
|
This option enables undefined behaviour sanity checker
|
|
Compile-time instrumentation is used to detect various undefined
|
|
behaviours in runtime. Various types of checks may be enabled
|
|
via boot parameter ubsan_handle
|
|
(see: Documentation/dev-tools/ubsan.rst).
|
|
|
|
config UBSAN_SANITIZE_ALL
|
|
bool "Enable instrumentation for the entire kernel"
|
|
depends on UBSAN
|
|
depends on ARCH_HAS_UBSAN_SANITIZE_ALL
|
|
|
|
# We build with -Wno-maybe-uninitilzed, but we still want to
|
|
# use -Wmaybe-uninitilized in allmodconfig builds.
|
|
# So dependsy bellow used to disable this option in allmodconfig
|
|
depends on !COMPILE_TEST
|
|
default y
|
|
help
|
|
This option activates instrumentation for the entire kernel.
|
|
If you don't enable this option, you have to explicitly specify
|
|
UBSAN_SANITIZE := y for the files/directories you want to check for UB.
|
|
Enabling this option will get kernel image size increased
|
|
significantly.
|
|
|
|
config UBSAN_ALIGNMENT
|
|
bool "Enable checking of pointers alignment"
|
|
depends on UBSAN
|
|
default y if !HAVE_EFFICIENT_UNALIGNED_ACCESS
|
|
help
|
|
This option enables detection of unaligned memory accesses.
|
|
Enabling this option on architectures that support unaligned
|
|
accesses may produce a lot of false positives.
|
|
|