diff options
author | tjr <tjr@FreeBSD.org> | 2003-02-14 08:59:49 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2003-02-14 08:59:49 +0000 |
commit | 5c16d0c5384413c453a808d72dc792c3a3784cd8 (patch) | |
tree | e0e5efec3d91cda6b3622677625cc8150704ae80 | |
parent | 8ac8794f2891f87d74dfad1d1fe02e1ff11d0f18 (diff) | |
download | FreeBSD-src-5c16d0c5384413c453a808d72dc792c3a3784cd8.zip FreeBSD-src-5c16d0c5384413c453a808d72dc792c3a3784cd8.tar.gz |
Obtain proc lock around modification of p_siglist in linux_wait4().
-rw-r--r-- | sys/compat/linux/linux_misc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index 6b2dda9..57460a8 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -832,7 +832,9 @@ linux_wait4(struct thread *td, struct linux_wait4_args *args) if ((error = wait4(td, &tmp)) != 0) return error; + PROC_LOCK(td->td_proc); SIGDELSET(td->td_proc->p_siglist, SIGCHLD); + PROC_UNLOCK(td->td_proc); if (args->status) { if ((error = copyin((caddr_t)args->status, &tmpstat, |