Re: [PATCH] ARM: ubsan: select ARCH_HAS_UBSAN_SANITIZE_ALL

From: Florian Fainelli
Date: Fri Sep 30 2022 - 17:35:17 EST


On 9/29/22 01:10, Kees Cook wrote:
On Wed, Sep 28, 2022 at 05:33:14PM -0700, William Zhang wrote:


On 09/28/2022 04:06 PM, Florian Fainelli wrote:
On 9/28/22 11:01, Kees Cook wrote:
On Wed, Sep 28, 2022 at 10:47:39AM -0700, Florian Fainelli wrote:
From: Seung-Woo Kim <sw0312.kim@xxxxxxxxxxx>

To enable UBSAN on ARM, this patch enables ARCH_HAS_UBSAN_SANITIZE_ALL
from arm confiuration. Basic kernel bootup test is passed on arm with
CONFIG_UBSAN_SANITIZE_ALL enabled.

Signed-off-by: Seung-Woo Kim <sw0312.kim@xxxxxxxxxxx>
[florian: rebased against v6.0-rc7]
Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>

Ah-ha, thanks for testing this. What devices did you check this on? I
know boot-up on arm32 can be very device-specific.

This was tested on an ARCH_BRCMSTB system which is using an ARMv8 CPU
booted in AArch32 mode, so virtually equivalent to armv7l. A raspberry
Pi 4B is also happily booting with it.


Which UBSAN configs did you try?

All CONFIG_UBSAN_* work with the exception of CONFIG_UBSAN_ALIGNMENT on
my ARCH_BRCMSTB system, however it works fine on the Raspberry Pi 4B.
Florian

I also tested on a BCM63138 board (ARM A9) under ARCH_BCMBCA using the
multi_v7_defconfig with all the UBSAN configs enabled except UBSAN_ALIGNMENT
and board boots up fine. Turning on UBSAN_ALIGNMENT results in flood of
false positive misaligned-access warnings. This is fine as ARM supports
unaligned access.

It did catch an out-of-band bug in mach-sunxi smp code. I will submit a
separate patch to fix that bug.

Yay! :) Move coverage is great. :)


Tested-by: William Zhang <william.zhang@xxxxxxxxxxxx>

Submitted to the patch tracker:

https://www.armlinux.org.uk/developer/patches/viewpatch.php?id=9253/1
--
Florian