diff options
author | 2021-12-15 12:35:34 -0800 | |
---|---|---|
committer | 2021-12-16 21:41:13 +0100 | |
commit | 7edc3fcbf9a2b2e3df53c9656a9f85bf807affac (patch) | |
tree | e67f6302d7d49c1c331031619e4f66ab13164907 /tools/testing/selftests/bpf/progs/test_module_attach.c | |
parent | bpf: Fix extable address check. (diff) | |
download | wireguard-linux-7edc3fcbf9a2b2e3df53c9656a9f85bf807affac.tar.xz wireguard-linux-7edc3fcbf9a2b2e3df53c9656a9f85bf807affac.zip |
selftest/bpf: Add a test that reads various addresses.
Add a function to bpf_testmod that returns invalid kernel and user addresses.
Then attach an fexit program to that function that tries to read
memory through these addresses.
This logic checks that bpf_probe_read_kernel and BPF_PROBE_MEM logic is sane.
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_module_attach.c')
-rw-r--r-- | tools/testing/selftests/bpf/progs/test_module_attach.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/progs/test_module_attach.c b/tools/testing/selftests/bpf/progs/test_module_attach.c index b36857093f71..50ce16d02da7 100644 --- a/tools/testing/selftests/bpf/progs/test_module_attach.c +++ b/tools/testing/selftests/bpf/progs/test_module_attach.c @@ -87,6 +87,18 @@ int BPF_PROG(handle_fexit, return 0; } +SEC("fexit/bpf_testmod_return_ptr") +int BPF_PROG(handle_fexit_ret, int arg, struct file *ret) +{ + long buf = 0; + + bpf_probe_read_kernel(&buf, 8, ret); + bpf_probe_read_kernel(&buf, 8, (char *)ret + 256); + *(volatile long long *)ret; + *(volatile int *)&ret->f_mode; + return 0; +} + __u32 fmod_ret_read_sz = 0; SEC("fmod_ret/bpf_testmod_test_read") |