Adding verifier test for accessing const void pointer argument in tracing programs.
The test program loads 2nd argument of kfree tp_btf which is const void pointer and checks that verifier allows that.
Signed-off-by: KaFai Wan kafai.wan@hotmail.com --- .../selftests/bpf/progs/verifier_btf_ctx_access.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c b/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c index 28b939572cda..a6cec7f73dcd 100644 --- a/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c +++ b/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c @@ -65,4 +65,13 @@ __naked void ctx_access_u32_pointer_reject_8(void) " ::: __clobber_all); }
+SEC("tp_btf/kfree") +__description("btf_ctx_access const void pointer accept") +int ctx_access_const_void_pointer_accept(void) +{ + /* load 2nd argument value (const void pointer) */ + asm volatile ("r2 = *(u64 *)(r1 + 8); "); + return 0; +} + char _license[] SEC("license") = "GPL";