diff --git a/sched/sched/sched_waitid.c b/sched/sched/sched_waitid.c index 20019342af..8aac1122dc 100644 --- a/sched/sched/sched_waitid.c +++ b/sched/sched/sched_waitid.c @@ -178,15 +178,17 @@ int nx_waitid(int idtype, id_t id, FAR siginfo_t *info, int options) */ ctcb = nxsched_get_tcb((pid_t)id); - -#ifdef HAVE_GROUP_MEMBERS - if (ctcb == NULL || ctcb->group->tg_pgrpid != rtcb->group->tg_grpid) -#else - if (ctcb == NULL || ctcb->group->tg_ppid != rtcb->pid) -#endif + if (ctcb != NULL) { - ret = -ECHILD; - goto errout; +#ifdef HAVE_GROUP_MEMBERS + if (ctcb->group->tg_pgrpid != rtcb->group->tg_grpid) +#else + if (ctcb->group->tg_ppid != rtcb->pid) +#endif + { + ret = -ECHILD; + goto errout; + } } /* Does this task retain child status? */