Messages in this thread Patch in this message | | | From | Walter Wu <> | Subject | [PATCH -next] kasan: fix -Wstringop-overflow warning | Date | Wed, 11 Mar 2020 21:42:44 +0800 |
| |
Compiling with gcc-9.2.1 points out below warnings.
In function 'memmove', inlined from 'kmalloc_memmove_invalid_size' at lib/test_kasan.c:301:2: include/linux/string.h:441:9: warning: '__builtin_memmove' specified bound 18446744073709551614 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
Why generate this warnings? Because our test function deliberately pass a negative number in memmove(), so we need to make it "volatile" so that compiler doesn't see it.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Qian Cai <cai@lca.pw> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Walter Wu <walter-zh.wu@mediatek.com> --- lib/test_kasan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/test_kasan.c b/lib/test_kasan.c index f123b4b8aadf..e3087d90e00d 100644 --- a/lib/test_kasan.c +++ b/lib/test_kasan.c @@ -289,6 +289,7 @@ static noinline void __init kmalloc_memmove_invalid_size(void) { char *ptr; size_t size = 64; + volatile size_t invalid_size = -2; pr_info("invalid size in memmove\n"); ptr = kmalloc(size, GFP_KERNEL); @@ -298,7 +299,7 @@ static noinline void __init kmalloc_memmove_invalid_size(void) } memset((char *)ptr, 0, 64); - memmove((char *)ptr, (char *)ptr + 4, -2); + memmove((char *)ptr, (char *)ptr + 4, invalid_size); kfree(ptr); } -- 2.18.0 | |