bpf: Test_progs, add test to catch retval refine error handling
authorJohn Fastabend <john.fastabend@gmail.com>
Mon, 30 Mar 2020 21:37:19 +0000 (14:37 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 30 Mar 2020 22:00:30 +0000 (15:00 -0700)
commitd2db08c7a14e0b5eed6132baf258b80622e041a9
tree53dcba117b24937e8c4795bfee2f348b7f946d1d
parentfa123ac022e425becce11f1a6c7ee4d283f75a90
bpf: Test_progs, add test to catch retval refine error handling

Before this series the verifier would clamp return bounds of
bpf_get_stack() to [0, X] and this led the verifier to believe
that a JMP_JSLT 0 would be false and so would prune that path.

The result is anything hidden behind that JSLT would be unverified.
Add a test to catch this case by hiding an goto pc-1 behind the
check which will cause an infinite loop if not rejected.

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/158560423908.10843.11783152347709008373.stgit@john-Precision-5820-Tower
tools/testing/selftests/bpf/prog_tests/get_stack_raw_tp.c
tools/testing/selftests/bpf/progs/test_get_stack_rawtp_err.c [new file with mode: 0644]