From 2c1f2513486f21d26b1942ce77ffc782677fbf4e Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Sat, 9 Jan 2021 16:04:01 +0100 Subject: dashboard/config/linux: disable most UBSAN configs Some UBSAN configs got enabled unintentionally just after olddefconfig. Disable most of them as they produce lots of crashes. Keep UBSAN_SHIFT, though, as people seem to fix these reports. Also change smack instance to clang as that's what we actually use for the instance. That caused some unwanted diffs in UBSAN configs as well, as UBSAN checks depend on the target compiler. --- dashboard/config/linux/bits/kasan.yml | 23 +++++++++++++++++++--- dashboard/config/linux/main.yml | 2 +- .../linux/upstream-apparmor-kasan-base.config | 2 +- .../config/linux/upstream-apparmor-kasan.config | 2 +- .../config/linux/upstream-arm64-kasan-base.config | 2 +- dashboard/config/linux/upstream-arm64-kasan.config | 2 +- .../linux/upstream-riscv64-kasan-base.config | 2 +- .../config/linux/upstream-riscv64-kasan.config | 2 +- .../config/linux/upstream-s390-kasan-base.config | 2 +- dashboard/config/linux/upstream-s390-kasan.config | 2 +- .../linux/upstream-selinux-kasan-base.config | 2 +- .../config/linux/upstream-selinux-kasan.config | 2 +- .../config/linux/upstream-smack-kasan-base.config | 23 ++++++++++++++++------ dashboard/config/linux/upstream-smack-kasan.config | 23 ++++++++++++++++------ dashboard/config/linux/upstream-usb-base.config | 2 +- dashboard/config/linux/upstream-usb.config | 2 +- 16 files changed, 67 insertions(+), 28 deletions(-) (limited to 'dashboard') diff --git a/dashboard/config/linux/bits/kasan.yml b/dashboard/config/linux/bits/kasan.yml index de188d860..9f911e95a 100644 --- a/dashboard/config/linux/bits/kasan.yml +++ b/dashboard/config/linux/bits/kasan.yml @@ -13,8 +13,25 @@ config: - SPARSEMEM_MANUAL: [-arm, -s390] - UBSAN: [v5.8] - - UBSAN_BOUNDS: [v5.8] - UBSAN_SANITIZE_ALL: [v5.8, -arm, -riscv] - - UBSAN_TRAP: [n, v5.8] - - UBSAN_MISC: [n, v5.8] + - UBSAN_TRAP: n + - UBSAN_MISC: n + - UBSAN_BOUNDS: [v5.8] + - UBSAN_SHIFT: [v5.11] + # Already detected well by the exception handler. + - UBSAN_DIV_ZERO: n + # Produces too many reports: + # https://groups.google.com/forum/#!msg/syzkaller-bugs/i0xhp3rFSmo/KwZ0r9IIBQAJ + - UBSAN_BOOL: n + # Produces too many reports: + # https://groups.google.com/g/syzkaller-bugs/c/b_y3xw0wvOI/m/L074F0v3BQAJ + - UBSAN_OBJECT_SIZE: n + # This does not produce any reports, which suggests that it does not work somehow. + - UBSAN_SIGNED_OVERFLOW: n + - UBSAN_UNSIGNED_OVERFLOW: n + # This does not produce any reports, which suggests that it does not work somehow. + - UBSAN_ENUM: n + # Presumably can produce lots of working-as-intended reports, but this wasn't checked. - UBSAN_ALIGNMENT: [n, v5.8] + # Depends on STACK_VALIDATION=n which we have enabled. + - UBSAN_UNREACHABLE: n diff --git a/dashboard/config/linux/main.yml b/dashboard/config/linux/main.yml index e3d360b9b..d3e826c64 100644 --- a/dashboard/config/linux/main.yml +++ b/dashboard/config/linux/main.yml @@ -4,7 +4,7 @@ instances: - upstream-apparmor-kasan: [linux-next, x86_64, gcc, lsm, apparmor, kasan, kfence] - upstream-selinux-kasan: [linux-next, x86_64, gcc, lsm, selinux, slab, kasan, kfence] - - upstream-smack-kasan: [linux-next, x86_64, gcc, lsm, smack, kasan, kfence] + - upstream-smack-kasan: [linux-next, x86_64, clang, lsm, smack, kasan, kfence] - upstream-kmsan: [x86_64, clang, lsm, apparmor, kmsan] - upstream-kcsan: [upstream, x86_64, clang, lsm, apparmor, slab, kcsan] - upstream-leak: [upstream, x86_64, gcc, lsm, apparmor, slab, kmemleak] diff --git a/dashboard/config/linux/upstream-apparmor-kasan-base.config b/dashboard/config/linux/upstream-apparmor-kasan-base.config index f4c253873..d72164687 100644 --- a/dashboard/config/linux/upstream-apparmor-kasan-base.config +++ b/dashboard/config/linux/upstream-apparmor-kasan-base.config @@ -4895,7 +4895,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set # CONFIG_UBSAN_BOOL is not set diff --git a/dashboard/config/linux/upstream-apparmor-kasan.config b/dashboard/config/linux/upstream-apparmor-kasan.config index efbbebb4e..042176780 100644 --- a/dashboard/config/linux/upstream-apparmor-kasan.config +++ b/dashboard/config/linux/upstream-apparmor-kasan.config @@ -8337,7 +8337,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set # CONFIG_UBSAN_BOOL is not set diff --git a/dashboard/config/linux/upstream-arm64-kasan-base.config b/dashboard/config/linux/upstream-arm64-kasan-base.config index 4974f3f64..af776dc23 100644 --- a/dashboard/config/linux/upstream-arm64-kasan-base.config +++ b/dashboard/config/linux/upstream-arm64-kasan-base.config @@ -6542,7 +6542,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_UNREACHABLE is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set diff --git a/dashboard/config/linux/upstream-arm64-kasan.config b/dashboard/config/linux/upstream-arm64-kasan.config index eadd86673..af24eb63a 100644 --- a/dashboard/config/linux/upstream-arm64-kasan.config +++ b/dashboard/config/linux/upstream-arm64-kasan.config @@ -7578,7 +7578,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_UNREACHABLE is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set diff --git a/dashboard/config/linux/upstream-riscv64-kasan-base.config b/dashboard/config/linux/upstream-riscv64-kasan-base.config index b2d5f352a..22bbccd0c 100644 --- a/dashboard/config/linux/upstream-riscv64-kasan-base.config +++ b/dashboard/config/linux/upstream-riscv64-kasan-base.config @@ -3406,7 +3406,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_UNREACHABLE is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set diff --git a/dashboard/config/linux/upstream-riscv64-kasan.config b/dashboard/config/linux/upstream-riscv64-kasan.config index 806d6de05..37e4b51cf 100644 --- a/dashboard/config/linux/upstream-riscv64-kasan.config +++ b/dashboard/config/linux/upstream-riscv64-kasan.config @@ -7423,7 +7423,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_UNREACHABLE is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set diff --git a/dashboard/config/linux/upstream-s390-kasan-base.config b/dashboard/config/linux/upstream-s390-kasan-base.config index ee6dc3aec..bfab0d36c 100644 --- a/dashboard/config/linux/upstream-s390-kasan-base.config +++ b/dashboard/config/linux/upstream-s390-kasan-base.config @@ -3177,7 +3177,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_UNREACHABLE is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set diff --git a/dashboard/config/linux/upstream-s390-kasan.config b/dashboard/config/linux/upstream-s390-kasan.config index 4befd6506..9027c93d9 100644 --- a/dashboard/config/linux/upstream-s390-kasan.config +++ b/dashboard/config/linux/upstream-s390-kasan.config @@ -7158,7 +7158,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_UNREACHABLE is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set diff --git a/dashboard/config/linux/upstream-selinux-kasan-base.config b/dashboard/config/linux/upstream-selinux-kasan-base.config index 90efc453a..fcc7e0b00 100644 --- a/dashboard/config/linux/upstream-selinux-kasan-base.config +++ b/dashboard/config/linux/upstream-selinux-kasan-base.config @@ -4894,7 +4894,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set # CONFIG_UBSAN_BOOL is not set diff --git a/dashboard/config/linux/upstream-selinux-kasan.config b/dashboard/config/linux/upstream-selinux-kasan.config index 4ee7f0faf..563768a89 100644 --- a/dashboard/config/linux/upstream-selinux-kasan.config +++ b/dashboard/config/linux/upstream-selinux-kasan.config @@ -8336,7 +8336,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set # CONFIG_UBSAN_BOOL is not set diff --git a/dashboard/config/linux/upstream-smack-kasan-base.config b/dashboard/config/linux/upstream-smack-kasan-base.config index 2e0fdf398..5ece39d8b 100644 --- a/dashboard/config/linux/upstream-smack-kasan-base.config +++ b/dashboard/config/linux/upstream-smack-kasan-base.config @@ -5,15 +5,16 @@ # Automatically generated file; DO NOT EDIT. # Linux/x86_64 5.11.0-rc2 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.0-16) 10.2.0" -CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=100200 +CONFIG_CC_VERSION_TEXT="clang version 11.0.0 (https://github.com/llvm/llvm-project.git ca2dcbd030eadbf0aa9b660efe864ff08af6e18b)" +CONFIG_GCC_VERSION=0 CONFIG_LD_VERSION=235010000 -CONFIG_CLANG_VERSION=0 +CONFIG_CC_IS_CLANG=y +CONFIG_CLANG_VERSION=110000 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CONSTRUCTORS=y CONFIG_IRQ_WORK=y @@ -4508,7 +4509,11 @@ CONFIG_LSM="lockdown,yama,safesetid,integrity,tomoyo,smack,bpf" # # Memory initialization # +CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_STACK_ALL_PATTERN is not set +# CONFIG_INIT_STACK_ALL_ZERO is not set CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set # end of Memory initialization @@ -4892,17 +4897,21 @@ CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y CONFIG_UBSAN=y # CONFIG_UBSAN_TRAP is not set CONFIG_CC_HAS_UBSAN_BOUNDS=y +CONFIG_CC_HAS_UBSAN_ARRAY_BOUNDS=y CONFIG_UBSAN_BOUNDS=y -CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_ARRAY_BOUNDS=y +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set +# CONFIG_UBSAN_UNSIGNED_OVERFLOW is not set +# CONFIG_UBSAN_OBJECT_SIZE is not set # CONFIG_UBSAN_BOOL is not set # CONFIG_UBSAN_ENUM is not set # CONFIG_UBSAN_ALIGNMENT is not set CONFIG_UBSAN_SANITIZE_ALL=y # CONFIG_TEST_UBSAN is not set CONFIG_HAVE_ARCH_KCSAN=y +CONFIG_HAVE_KCSAN_COMPILER=y # end of Generic Kernel Debugging Instruments CONFIG_DEBUG_KERNEL=y @@ -4952,11 +4961,13 @@ CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP=y CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_KASAN_SW_TAGS=y CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y CONFIG_KASAN=y CONFIG_KASAN_GENERIC=y # CONFIG_KASAN_OUTLINE is not set CONFIG_KASAN_INLINE=y +CONFIG_KASAN_STACK_ENABLE=y CONFIG_KASAN_STACK=1 CONFIG_KASAN_VMALLOC=y # CONFIG_TEST_KASAN_MODULE is not set diff --git a/dashboard/config/linux/upstream-smack-kasan.config b/dashboard/config/linux/upstream-smack-kasan.config index 88bcd2a1f..67e937f42 100644 --- a/dashboard/config/linux/upstream-smack-kasan.config +++ b/dashboard/config/linux/upstream-smack-kasan.config @@ -5,15 +5,16 @@ # Automatically generated file; DO NOT EDIT. # Linux/x86_64 5.11.0-rc2 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.0-16) 10.2.0" -CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=100200 +CONFIG_CC_VERSION_TEXT="clang version 11.0.0 (https://github.com/llvm/llvm-project.git ca2dcbd030eadbf0aa9b660efe864ff08af6e18b)" +CONFIG_GCC_VERSION=0 CONFIG_LD_VERSION=235010000 -CONFIG_CLANG_VERSION=0 +CONFIG_CC_IS_CLANG=y +CONFIG_CLANG_VERSION=110000 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CONSTRUCTORS=y CONFIG_IRQ_WORK=y @@ -7880,7 +7881,11 @@ CONFIG_LSM="lockdown,yama,safesetid,integrity,tomoyo,smack,bpf" # # Memory initialization # +CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_STACK_ALL_PATTERN is not set +# CONFIG_INIT_STACK_ALL_ZERO is not set CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set # end of Memory initialization @@ -8334,17 +8339,21 @@ CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y CONFIG_UBSAN=y # CONFIG_UBSAN_TRAP is not set CONFIG_CC_HAS_UBSAN_BOUNDS=y +CONFIG_CC_HAS_UBSAN_ARRAY_BOUNDS=y CONFIG_UBSAN_BOUNDS=y -CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_ARRAY_BOUNDS=y +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set +# CONFIG_UBSAN_UNSIGNED_OVERFLOW is not set +# CONFIG_UBSAN_OBJECT_SIZE is not set # CONFIG_UBSAN_BOOL is not set # CONFIG_UBSAN_ENUM is not set # CONFIG_UBSAN_ALIGNMENT is not set CONFIG_UBSAN_SANITIZE_ALL=y # CONFIG_TEST_UBSAN is not set CONFIG_HAVE_ARCH_KCSAN=y +CONFIG_HAVE_KCSAN_COMPILER=y # end of Generic Kernel Debugging Instruments CONFIG_DEBUG_KERNEL=y @@ -8394,11 +8403,13 @@ CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP=y CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_KASAN_SW_TAGS=y CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y CONFIG_KASAN=y CONFIG_KASAN_GENERIC=y # CONFIG_KASAN_OUTLINE is not set CONFIG_KASAN_INLINE=y +CONFIG_KASAN_STACK_ENABLE=y CONFIG_KASAN_STACK=1 CONFIG_KASAN_VMALLOC=y # CONFIG_TEST_KASAN_MODULE is not set diff --git a/dashboard/config/linux/upstream-usb-base.config b/dashboard/config/linux/upstream-usb-base.config index d2adb686c..19f40e345 100644 --- a/dashboard/config/linux/upstream-usb-base.config +++ b/dashboard/config/linux/upstream-usb-base.config @@ -4934,7 +4934,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set # CONFIG_UBSAN_BOOL is not set diff --git a/dashboard/config/linux/upstream-usb.config b/dashboard/config/linux/upstream-usb.config index 63e451e81..14cda39ed 100644 --- a/dashboard/config/linux/upstream-usb.config +++ b/dashboard/config/linux/upstream-usb.config @@ -7395,7 +7395,7 @@ CONFIG_UBSAN=y CONFIG_CC_HAS_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_ONLY_BOUNDS=y -# CONFIG_UBSAN_SHIFT is not set +CONFIG_UBSAN_SHIFT=y # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_SIGNED_OVERFLOW is not set # CONFIG_UBSAN_BOOL is not set -- cgit mrf-deployment