diff options
author | tjr <tjr@FreeBSD.org> | 2003-02-14 09:12:12 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2003-02-14 09:12:12 +0000 |
commit | 9696379ec26cd3b35319dad2ba50064203c57f97 (patch) | |
tree | 8b7b97fc2269f4ac7614cd975e83bf46cc21c12c /sys | |
parent | 5c16d0c5384413c453a808d72dc792c3a3784cd8 (diff) | |
download | FreeBSD-src-9696379ec26cd3b35319dad2ba50064203c57f97.zip FreeBSD-src-9696379ec26cd3b35319dad2ba50064203c57f97.tar.gz |
Lock proc while manipulating p_sigmask p_sigignore and p_siglist.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/netsmb/smb_subr.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/netsmb/smb_subr.c b/sys/netsmb/smb_subr.c index 3ecfd8f..ae21133 100644 --- a/sys/netsmb/smb_subr.c +++ b/sys/netsmb/smb_subr.c @@ -75,11 +75,15 @@ smb_proc_intr(struct proc *p) if (p == NULL) return 0; + PROC_LOCK(p); tmpset = p->p_siglist; SIGSETNAND(tmpset, p->p_sigmask); SIGSETNAND(tmpset, p->p_sigignore); - if (SIGNOTEMPTY(p->p_siglist) && SMB_SIGMASK(tmpset)) + if (SIGNOTEMPTY(p->p_siglist) && SMB_SIGMASK(tmpset)) { + PROC_UNLOCK(p); return EINTR; + } + PROC_UNLOCK(p); return 0; } |