aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/bpf/progs/test_core_reloc_kernel.c
diff options
context:
space:
mode:
authorAndrii Nakryiko <andriin@fb.com>2019-11-21 09:59:00 -0800
committerAlexei Starovoitov <ast@kernel.org>2019-11-24 16:58:46 -0800
commit6147a140c99f1ded2b519dfbed17e781e5861bf3 (patch)
tree3d3484f31c432843f412fb9ee4bf72ee8777baed /tools/testing/selftests/bpf/progs/test_core_reloc_kernel.c
parentlibbpf: Fix bpf_object name determination for bpf_object__open_file() (diff)
downloadlinux-dev-6147a140c99f1ded2b519dfbed17e781e5861bf3.tar.xz
linux-dev-6147a140c99f1ded2b519dfbed17e781e5861bf3.zip
selftests/bpf: Ensure core_reloc_kernel is reading test_progs's data only
test_core_reloc_kernel.c selftest is the only CO-RE test that reads and returns for validation calling thread's information (pid, tgid, comm). Thus it has to make sure that only test_prog's invocations are honored. Fixes: df36e621418b ("selftests/bpf: add CO-RE relocs testing setup") Reported-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: John Fastabend <john.fastabend@gmail.com> Link: https://lore.kernel.org/bpf/20191121175900.3486133-1-andriin@fb.com
Diffstat (limited to '')
-rw-r--r--tools/testing/selftests/bpf/progs/test_core_reloc_kernel.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/progs/test_core_reloc_kernel.c b/tools/testing/selftests/bpf/progs/test_core_reloc_kernel.c
index 5d499ebdc4bd..270de441b60a 100644
--- a/tools/testing/selftests/bpf/progs/test_core_reloc_kernel.c
+++ b/tools/testing/selftests/bpf/progs/test_core_reloc_kernel.c
@@ -11,6 +11,7 @@ char _license[] SEC("license") = "GPL";
struct {
char in[256];
char out[256];
+ uint64_t my_pid_tgid;
} data = {};
struct core_reloc_kernel_output {
@@ -38,6 +39,9 @@ int test_core_kernel(void *ctx)
uint32_t real_tgid = (uint32_t)pid_tgid;
int pid, tgid;
+ if (data.my_pid_tgid != pid_tgid)
+ return 0;
+
if (CORE_READ(&pid, &task->pid) ||
CORE_READ(&tgid, &task->tgid))
return 1;