diff options
author | Artem Savkov <asavkov@redhat.com> | 2022-04-06 10:54:08 +0200 |
---|---|---|
committer | Andrii Nakryiko <andrii@kernel.org> | 2022-04-06 10:15:53 -0700 |
commit | ebaf24c589d7c714b763a80856d1a6df3ba25b84 (patch) | |
tree | 1158cf2b5a2c53d107fc12fc444c7b9d16f2486f /tools/testing/selftests/bpf/prog_tests/netcnt.c | |
parent | a8d600f6bcd453f1807703b5a016212f5484ffa1 (diff) |
selftests/bpf: Use bpf_num_possible_cpus() in per-cpu map allocations
bpf_map_value_size() uses num_possible_cpus() to determine map size, but
some of the tests only allocate enough memory for online cpus. This
results in out-of-bound writes in userspace during bpf(BPF_MAP_LOOKUP_ELEM)
syscalls in cases when number of online cpus is lower than the number of
possible cpus. Fix by switching from get_nprocs_conf() to
bpf_num_possible_cpus() when determining the number of processors in
these tests (test_progs/netcnt and test_cgroup_storage).
Signed-off-by: Artem Savkov <asavkov@redhat.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220406085408.339336-1-asavkov@redhat.com
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/netcnt.c')
-rw-r--r-- | tools/testing/selftests/bpf/prog_tests/netcnt.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/netcnt.c b/tools/testing/selftests/bpf/prog_tests/netcnt.c index 954964f0ac3d..d3915c58d0e1 100644 --- a/tools/testing/selftests/bpf/prog_tests/netcnt.c +++ b/tools/testing/selftests/bpf/prog_tests/netcnt.c @@ -25,7 +25,7 @@ void serial_test_netcnt(void) if (!ASSERT_OK_PTR(skel, "netcnt_prog__open_and_load")) return; - nproc = get_nprocs_conf(); + nproc = bpf_num_possible_cpus(); percpu_netcnt = malloc(sizeof(*percpu_netcnt) * nproc); if (!ASSERT_OK_PTR(percpu_netcnt, "malloc(percpu_netcnt)")) goto err; |