selftests/bpf: Fix UBSan complaint about signed __int128 overflow
authorAndrii Nakryiko <andrii@kernel.org>
Wed, 24 Nov 2021 00:23:19 +0000 (16:23 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 25 Nov 2021 23:15:03 +0000 (00:15 +0100)
Test is using __int128 variable as unsigned and highest order bit can be
set to 1 after bit shift. Use unsigned __int128 explicitly and prevent
UBSan from complaining.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20211124002325.1737739-8-andrii@kernel.org
tools/testing/selftests/bpf/prog_tests/btf_dump.c

index af47aeb..9e26903 100644 (file)
@@ -323,7 +323,7 @@ static void test_btf_dump_int_data(struct btf *btf, struct btf_dump *d,
                                   char *str)
 {
 #ifdef __SIZEOF_INT128__
-       __int128 i = 0xffffffffffffffff;
+       unsigned __int128 i = 0xffffffffffffffff;
 
        /* this dance is required because we cannot directly initialize
         * a 128-bit value to anything larger than a 64-bit value.