[PATCH] kasan: Add explicit preconditions to kasan_report()

Andrey Konovalov andreyknvl at google.com
Tue Jan 19 15:56:49 EST 2021


On Tue, Jan 19, 2021 at 9:32 PM Vincenzo Frascino
<vincenzo.frascino at arm.com> wrote:
>
> This seems not working on arm64 because according to virt_addr_valid 0 is a
> valid virtual address, in fact:
>
> __is_lm_address(0) == true && pfn_valid(virt_to_pfn(0)) == true.
>
> An option could be to make an exception for virtual address 0 in
> addr_has_metadata() something like:
>
> static inline bool addr_has_metadata(const void *addr)
> {
>         if ((u64)addr == 0)
>                 return false;

This sounds good to me, but we need to check for < PAGE_SIZE or
something like that, right? There's some limit below which accesses
are considered null-ptr-derefs.

>         return (is_vmalloc_addr(addr) || virt_addr_valid(addr));

Do we need is_vmalloc_addr()? As we don't yet have vmalloc support for HW_TAGS.



More information about the linux-arm-kernel mailing list