Skip to content

Commit e16e64f

Browse files
bjorn-rivosanakryiko
authored andcommitted
selftests/bpf: Sanitize pointer prior fclose()
There are scenarios where env.{sub,}test_state->stdout_saved, can be NULL, e.g. sometimes when the watchdog timeout kicks in, or if the open_memstream syscall is not available. Avoid crashing test_progs by adding an explicit NULL check prior the fclose() call. Signed-off-by: Björn Töpel <bjorn@rivosinc.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Acked-by: Jiri Olsa <jolsa@kernel.org> Link: https://lore.kernel.org/bpf/20250318081648.122523-1-bjorn@kernel.org
1 parent 79db658 commit e16e64f

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

tools/testing/selftests/bpf/test_progs.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,14 @@ static void stdio_restore(void)
103103
pthread_mutex_lock(&stdout_lock);
104104

105105
if (env.subtest_state) {
106-
fclose(env.subtest_state->stdout_saved);
106+
if (env.subtest_state->stdout_saved)
107+
fclose(env.subtest_state->stdout_saved);
107108
env.subtest_state->stdout_saved = NULL;
108109
stdout = env.test_state->stdout_saved;
109110
stderr = env.test_state->stdout_saved;
110111
} else {
111-
fclose(env.test_state->stdout_saved);
112+
if (env.test_state->stdout_saved)
113+
fclose(env.test_state->stdout_saved);
112114
env.test_state->stdout_saved = NULL;
113115
stdout = env.stdout_saved;
114116
stderr = env.stderr_saved;

0 commit comments

Comments
 (0)