From 844219f47178e5113530e3e7bf98a4af8651711c Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 16 Sep 2020 21:38:24 +0000 Subject: proc_realparent: if p_oppid does not match pid of the current parent for non-orphaned process, return reaper instead of init. Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D26416 --- sys/kern/kern_exit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 468526595029e..cab69f06163a7 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -104,7 +104,7 @@ proc_realparent(struct proc *child) sx_assert(&proctree_lock, SX_LOCKED); if ((child->p_treeflag & P_TREE_ORPHANED) == 0) return (child->p_pptr->p_pid == child->p_oppid ? - child->p_pptr : initproc); + child->p_pptr : child->p_reaper); for (p = child; (p->p_treeflag & P_TREE_FIRST_ORPHAN) == 0;) { /* Cannot use LIST_PREV(), since the list head is not known. */ p = __containerof(p->p_orphan.le_prev, struct proc, -- cgit v1.2.3