On 2/27/19 2:46 PM, Andrii Nakryiko wrote:
> btf_dedup testing code doesn't account for length of struct btf_header
> when calculating the start of a string section. This patch fixes this
> problem.
>
> Fixes: 49b57e0d01db ("tools/bpf: remove btf__get_strings() superseded by raw
> data API")
> Signed-off-by: Andrii Nakryiko <[email protected]>
Acked-by: Yonghong Song <[email protected]>
for Patch #1 - #3.
> ---
> tools/testing/selftests/bpf/.gitignore | 1 +
> tools/testing/selftests/bpf/test_btf.c | 4 ++--
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/.gitignore
> b/tools/testing/selftests/bpf/.gitignore
> index e47168d1257d..3b74d23fffab 100644
> --- a/tools/testing/selftests/bpf/.gitignore
> +++ b/tools/testing/selftests/bpf/.gitignore
> @@ -14,6 +14,7 @@ feature
> test_libbpf_open
> test_sock
> test_sock_addr
> +test_sock_fields
> urandom_read
> test_btf
> test_sockmap
> diff --git a/tools/testing/selftests/bpf/test_btf.c
> b/tools/testing/selftests/bpf/test_btf.c
> index 02d314383a9c..1426c0a905c8 100644
> --- a/tools/testing/selftests/bpf/test_btf.c
> +++ b/tools/testing/selftests/bpf/test_btf.c
> @@ -5936,9 +5936,9 @@ static int do_test_dedup(unsigned int test_num)
> }
>
> test_hdr = test_btf_data;
> - test_strs = test_btf_data + test_hdr->str_off;
> + test_strs = test_btf_data + sizeof(*test_hdr) + test_hdr->str_off;
> expect_hdr = expect_btf_data;
> - expect_strs = expect_btf_data + expect_hdr->str_off;
> + expect_strs = expect_btf_data + sizeof(*test_hdr) + expect_hdr->str_off;
> if (CHECK(test_hdr->str_len != expect_hdr->str_len,
> "test_hdr->str_len:%u != expect_hdr->str_len:%u",
> test_hdr->str_len, expect_hdr->str_len)) {
>