diff options
| author | Mateusz Guzik <mjg@FreeBSD.org> | 2018-11-16 17:07:54 +0000 |
|---|---|---|
| committer | Mateusz Guzik <mjg@FreeBSD.org> | 2018-11-16 17:07:54 +0000 |
| commit | 2c054ce9242ce359b90ac244d87fa4bb71189161 (patch) | |
| tree | 6ec9a29bab33bbb95e4fee975b51c06c5289ba2d /sys/kern/sys_process.c | |
| parent | 14343799dc7d99cbadd5aab5481fbd05268c7841 (diff) | |
Notes
Diffstat (limited to 'sys/kern/sys_process.c')
| -rw-r--r-- | sys/kern/sys_process.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index 2922b9f916fa..9198174d0eaa 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -695,7 +695,6 @@ proc_set_traced(struct proc *p, bool stop) if (stop) p->p_flag2 |= P2_PTRACE_FSTP; p->p_ptevents = PTRACE_DEFAULT; - p->p_oppid = p->p_pptr->p_pid; } int @@ -919,7 +918,7 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) */ proc_set_traced(p, true); if (p->p_pptr != td->td_proc) { - proc_reparent(p, td->td_proc); + proc_reparent(p, td->td_proc, false); } CTR2(KTR_PTRACE, "PT_ATTACH: pid %d, oppid %d", p->p_pid, p->p_oppid); @@ -1113,7 +1112,7 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) PROC_UNLOCK(p->p_pptr); pp = proc_realparent(p); - proc_reparent(p, pp); + proc_reparent(p, pp, false); if (pp == initproc) p->p_sigparent = SIGCHLD; CTR3(KTR_PTRACE, @@ -1122,7 +1121,6 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) } else CTR2(KTR_PTRACE, "PT_DETACH: pid %d, sig %d", p->p_pid, data); - p->p_oppid = 0; p->p_ptevents = 0; FOREACH_THREAD_IN_PROC(p, td3) { if ((td3->td_dbgflags & TDB_FSTP) != 0) { |
