On Sun, Apr 13, 2025 at 01:06:26AM +0800, KaFai Wan wrote:
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); ");
I think we should follow formatting of other tests in the file, a do smth like:
asm volatile (" \ r2 = *(u64 *)(r1 + 8); "); /* load 2nd argument value (const void pointer) */\ ...
thanks, jirka
- return 0;
+}
char _license[] SEC("license") = "GPL";
2.43.0