aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Xu <davidxu@FreeBSD.org>2005-12-06 05:30:13 +0000
committerDavid Xu <davidxu@FreeBSD.org>2005-12-06 05:30:13 +0000
commit027f7604086f22c54930f2d3354cabefa72573a5 (patch)
tree88dc6ad9871e1806f8a12402b29b2c47f70864e1
parent0ce3dc049a842f2e2f1d1400b9f8b191912ab635 (diff)
downloadsrc-027f7604086f22c54930f2d3354cabefa72573a5.tar.gz
src-027f7604086f22c54930f2d3354cabefa72573a5.zip
Fix a lock leak in childproc_continued().
Notes
Notes: svn path=/head/; revision=153153
-rw-r--r--sys/kern/kern_sig.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index 9d22723e18b4..13cb81fadc3b 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -2888,8 +2888,10 @@ childproc_continued(struct proc *p)
p->p_ksi->ksi_status = SIGCONT;
p->p_ksi->ksi_pid = p->p_pid;
p->p_ksi->ksi_uid = p->p_ucred->cr_ruid;
- if (KSI_ONQ(p->p_ksi))
+ if (KSI_ONQ(p->p_ksi)) {
+ PROC_UNLOCK(p->p_pptr);
return;
+ }
}
tdsignal(p->p_pptr, NULL, SIGCHLD, p->p_ksi);
PROC_UNLOCK(p->p_pptr);