Once we add __alloc_size attributes to allocations, GCC will complain about violation of memory safety in test_kasan.c. That memory violation is intended though as test_kasan is meant to trigger kasan at runtime to verify correct operation. Silence the warnings by hiding the origin of ptr, so the compiler loses context about the size of the allocation. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- lib/kasan/test_kasan.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/kasan/test_kasan.c b/lib/kasan/test_kasan.c index 14511cdb80bd..a74251a6d9ad 100644 --- a/lib/kasan/test_kasan.c +++ b/lib/kasan/test_kasan.c @@ -38,6 +38,8 @@ static noinline void malloc_oob_right(void) return; } + OPTIMIZER_HIDE_VAR(ptr); + ptr[size] = 'x'; free(ptr); @@ -55,6 +57,8 @@ static noinline void malloc_oob_left(void) return; } + OPTIMIZER_HIDE_VAR(ptr); + *ptr = *(ptr - 1); free(ptr); } @@ -75,6 +79,8 @@ static noinline void malloc_oob_realloc_more(void) return; } + OPTIMIZER_HIDE_VAR(ptr2); + ptr2[size2] = 'x'; free(ptr2); @@ -95,6 +101,8 @@ static noinline void malloc_oob_realloc_less(void) return; } + OPTIMIZER_HIDE_VAR(ptr2); + ptr2[size2] = 'x'; free(ptr2); @@ -115,6 +123,9 @@ static noinline void malloc_oob_16(void) free(ptr2); return; } + + OPTIMIZER_HIDE_VAR(ptr1); + *ptr1 = *ptr2; free(ptr1); free(ptr2); -- 2.39.2