Message ID | 1473683840-8700-2-git-send-email-borntraeger@de.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Sep 12, 2016 at 02:37:19PM +0200, Christian Borntraeger wrote: > Some architectures use a hardware defined struct at address zero. > Checking for a null pointer will result in many ubsan reports. > Let users disable the null sanitizer. > > Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> > --- > lib/Kconfig.ubsan | 11 +++++++++++ > scripts/Makefile.ubsan | 5 ++++- > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan > index 39494af..851c3f2 100644 > --- a/lib/Kconfig.ubsan > +++ b/lib/Kconfig.ubsan > @@ -1,6 +1,9 @@ > config ARCH_HAS_UBSAN_SANITIZE_ALL > bool > > +config ARCH_WANTS_UBSAN_NO_NULL > + def_bool n > + > config UBSAN > bool "Undefined behaviour sanity checker" > help > @@ -34,3 +37,11 @@ config UBSAN_ALIGNMENT > This option enables detection of unaligned memory accesses. > Enabling this option on architectures that support unaligned > accesses may produce a lot of false positives. > + > +config UBSAN_NULL > + bool "Enable checking of null pointers" > + depends on UBSAN > + default y if UBSAN && !ARCH_WANTS_UBSAN_NO_NULL I removed the not needed UBSAN from the "default y" and applied both patches to the s390 tree. Thanks! -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan index 39494af..851c3f2 100644 --- a/lib/Kconfig.ubsan +++ b/lib/Kconfig.ubsan @@ -1,6 +1,9 @@ config ARCH_HAS_UBSAN_SANITIZE_ALL bool +config ARCH_WANTS_UBSAN_NO_NULL + def_bool n + config UBSAN bool "Undefined behaviour sanity checker" help @@ -34,3 +37,11 @@ config UBSAN_ALIGNMENT This option enables detection of unaligned memory accesses. Enabling this option on architectures that support unaligned accesses may produce a lot of false positives. + +config UBSAN_NULL + bool "Enable checking of null pointers" + depends on UBSAN + default y if UBSAN && !ARCH_WANTS_UBSAN_NO_NULL + help + This option enables detection of memory accesses via a + null pointer. diff --git a/scripts/Makefile.ubsan b/scripts/Makefile.ubsan index 77ce538..3b1b138 100644 --- a/scripts/Makefile.ubsan +++ b/scripts/Makefile.ubsan @@ -3,7 +3,6 @@ ifdef CONFIG_UBSAN CFLAGS_UBSAN += $(call cc-option, -fsanitize=integer-divide-by-zero) CFLAGS_UBSAN += $(call cc-option, -fsanitize=unreachable) CFLAGS_UBSAN += $(call cc-option, -fsanitize=vla-bound) - CFLAGS_UBSAN += $(call cc-option, -fsanitize=null) CFLAGS_UBSAN += $(call cc-option, -fsanitize=signed-integer-overflow) CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds) CFLAGS_UBSAN += $(call cc-option, -fsanitize=object-size) @@ -15,6 +14,10 @@ ifdef CONFIG_UBSAN_ALIGNMENT CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment) endif +ifdef CONFIG_UBSAN_NULL + CFLAGS_UBSAN += $(call cc-option, -fsanitize=null) +endif + # -fsanitize=* options makes GCC less smart than usual and # increase number of 'maybe-uninitialized false-positives CFLAGS_UBSAN += $(call cc-option, -Wno-maybe-uninitialized)
Some architectures use a hardware defined struct at address zero. Checking for a null pointer will result in many ubsan reports. Let users disable the null sanitizer. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> --- lib/Kconfig.ubsan | 11 +++++++++++ scripts/Makefile.ubsan | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-)