aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/sys_process.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2001-05-04 18:13:11 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2001-05-04 18:13:11 +0000
commit6c49a8e295def754c6d902ca8563cce6571cfbf3 (patch)
tree91108b384879e37e7c56ce24ca9902158cc567cf /sys/kern/sys_process.c
parentf21559815d204e3a57da3222866b83a11f290ded (diff)
Notes
Diffstat (limited to 'sys/kern/sys_process.c')
-rw-r--r--sys/kern/sys_process.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c
index d08f342723e7..03640cf6e11d 100644
--- a/sys/kern/sys_process.c
+++ b/sys/kern/sys_process.c
@@ -381,7 +381,12 @@ ptrace(curp, uap)
struct proc *pp;
pp = pfind(p->p_oppid);
- proc_reparent(p, pp ? pp : initproc);
+ if (pp != NULL)
+ PROC_UNLOCK(pp);
+ else
+ pp = initproc;
+ PROC_LOCK(p);
+ proc_reparent(p, pp);
} else
PROC_LOCK(p);
p->p_flag &= ~(P_TRACED | P_WAITED);