diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c index cab1ada376b..abe51009c64 100644 --- a/mm/kasan/kasan.c +++ b/mm/kasan/kasan.c @@ -149,7 +149,7 @@ static FAR uintptr_t *kasan_mem_to_shadow(FAR const void *ptr, size_t size, size_t mod; size_t i; - if (g_region_init != KASAN_INIT_VALUE || size == 0) + if (g_region_init != KASAN_INIT_VALUE) { return NULL; } @@ -168,6 +168,11 @@ static FAR uintptr_t *kasan_mem_to_shadow(FAR const void *ptr, size_t size, } mod = size % KASAN_SHADOW_SCALE; + if (mod == 0) + { + return NULL; + } + addr += mul * KASAN_SHADOW_SCALE; size = mod; }