mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 22:21:42 +00:00
tools/bpf: fix a selftest test_btf failure
Commit9c65112744
("selftests/btf: add initial BTF dedup tests") added dedup tests in test_btf.c. It broke the raw test: BTF raw test[71] (func proto (Bad arg name_off)): btf_raw_create:2905:FAIL Error getting string #65535, strs_cnt:1 The test itself encodes invalid func_proto parameter name offset 0xffffFFFF as a negative test for the kernel. The above commit changed the meaning of that offset and resulted in a user space error. #define NAME_NTH(N) (0xffff0000 | N) #define IS_NAME_NTH(X) ((X & 0xffff0000) == 0xffff0000) #define GET_NAME_NTH_IDX(X) (X & 0x0000ffff) Currently, the kernel permits maximum name offset 0xffff. Set the test name off as 0x0fffFFFF to trigger the kernel verification failure. Cc: Andrii Nakryiko <andriin@fb.com> Fixes:9c65112744
("selftests/btf: add initial BTF dedup tests") Signed-off-by: Yonghong Song <yhs@fb.com> Acked-by: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
90d304b7f7
commit
206dafb0a3
@ -1978,7 +1978,7 @@ static struct btf_raw_test raw_tests[] = {
|
||||
/* void (*)(int a, unsigned int <bad_name_off>) */
|
||||
BTF_FUNC_PROTO_ENC(0, 2), /* [3] */
|
||||
BTF_FUNC_PROTO_ARG_ENC(NAME_TBD, 1),
|
||||
BTF_FUNC_PROTO_ARG_ENC(0xffffffff, 2),
|
||||
BTF_FUNC_PROTO_ARG_ENC(0x0fffffff, 2),
|
||||
BTF_END_RAW,
|
||||
},
|
||||
.str_sec = "\0a",
|
||||
|
Loading…
Reference in New Issue
Block a user