summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeng Yang <yangfeng@kylinos.cn>2026-07-23 16:50:59 +0800
committerKumar Kartikeya Dwivedi <memxor@gmail.com>2026-07-24 23:15:20 +0200
commita813ad2185cd9f653a79b96b7c8a24240118c4e1 (patch)
tree2e7197b011f657277b1ab3e2a5187b0465841784
parent12b362b2f06b283b7d8a2450f702f9b6a0f94aed (diff)
downloadlinux-a813ad2185cd9f653a79b96b7c8a24240118c4e1.tar.gz
linux-a813ad2185cd9f653a79b96b7c8a24240118c4e1.zip
selftests/bpf: Use calloc to allocate subtest_states
An early return triggered by read_prog_test_msg leaves uninitialized elements, which leads to memory corruption during free_test_states cleanup. Signed-off-by: Feng Yang <yangfeng@kylinos.cn> Link: https://lore.kernel.org/bpf/20260723085100.482147-5-yangfeng59949@163.com Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
-rw-r--r--tools/testing/selftests/bpf/test_progs.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c
index 301c6e11ceaf..07da45230c4b 100644
--- a/tools/testing/selftests/bpf/test_progs.c
+++ b/tools/testing/selftests/bpf/test_progs.c
@@ -1516,7 +1516,7 @@ static int dispatch_thread_send_subtests(int sock_fd, struct test_state *state)
struct subtest_state *subtest_state;
int subtest_num = state->subtest_num;
- state->subtest_states = malloc(subtest_num * sizeof(*subtest_state));
+ state->subtest_states = calloc(subtest_num, sizeof(*subtest_state));
if (!state->subtest_states) {
state->subtest_num = 0;
return -ENOMEM;
@@ -1525,8 +1525,6 @@ static int dispatch_thread_send_subtests(int sock_fd, struct test_state *state)
for (int i = 0; i < subtest_num; i++) {
subtest_state = &state->subtest_states[i];
- memset(subtest_state, 0, sizeof(*subtest_state));
-
if (read_prog_test_msg(sock_fd, &msg, MSG_SUBTEST_DONE))
return 1;