diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2026-07-31 02:04:05 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2026-07-31 15:57:31 +0000 |
| commit | 833bdae6c58bcede4d9d5e64612b34295558de0b (patch) | |
| tree | 5b8484f70161f7a2a5d10eedfe58da858bf2cc26 | |
| parent | ff97443beef614a12652cb96ccebe95e9046e82a (diff) | |
proc_realparent(): do not mark the child as orphan when reparenting to p_opptr pid
Reported and reviewed by: markj
Fixes: 8cef3c9b768a ("proc_realparent(): assert that an orphaned child has real parent != parent")
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D58566
| -rw-r--r-- | sys/kern/kern_exit.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index ebe4aa40c128..7fb3f115af9d 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -1663,9 +1663,8 @@ proc_reparent(struct proc *child, struct proc *parent, bool set_oppid) LIST_INSERT_HEAD(&parent->p_children, child, p_sibling); proc_clear_orphan(child); - if ((child->p_flag & P_TRACED) != 0) { + if ((child->p_flag & P_TRACED) != 0 && child->p_oppid != parent->p_pid) proc_add_orphan(child, child->p_pptr); - } child->p_pptr = parent; if (set_oppid) |
