From 1c3d6ea24b134816948004c78999c382d44ae650 Mon Sep 17 00:00:00 2001 From: David Alessio Date: Tue, 5 Nov 2019 08:59:01 -0600 Subject: [PATCH] sched/sched/sched_waitpid.c: Fix null pointer derefence on race without DEBUG_ASSERT. --- sched/sched/sched_waitpid.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sched/sched/sched_waitpid.c b/sched/sched/sched_waitpid.c index f5fecafd381..c23b51ea620 100644 --- a/sched/sched/sched_waitpid.c +++ b/sched/sched/sched_waitpid.c @@ -547,10 +547,13 @@ pid_t waitpid(pid_t pid, int *stat_loc, int options) child = group_exitchild(rtcb->group); DEBUGASSERT(child != NULL); - /* Discard the child entry */ + /* Discard the child entry, if we have one */ - (void)group_removechild(rtcb->group, child->ch_pid); - group_freechild(child); + if (child != NULL) + { + (void)group_removechild(rtcb->group, child->ch_pid); + group_freechild(child); + } } #endif /* CONFIG_SCHED_CHILD_STATUS */