summaryrefslogtreecommitdiffstats
path: root/sys/netsmb
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2003-02-14 09:12:12 +0000
committertjr <tjr@FreeBSD.org>2003-02-14 09:12:12 +0000
commit9696379ec26cd3b35319dad2ba50064203c57f97 (patch)
tree8b7b97fc2269f4ac7614cd975e83bf46cc21c12c /sys/netsmb
parent5c16d0c5384413c453a808d72dc792c3a3784cd8 (diff)
downloadFreeBSD-src-9696379ec26cd3b35319dad2ba50064203c57f97.zip
FreeBSD-src-9696379ec26cd3b35319dad2ba50064203c57f97.tar.gz
Lock proc while manipulating p_sigmask p_sigignore and p_siglist.
Diffstat (limited to 'sys/netsmb')
-rw-r--r--sys/netsmb/smb_subr.c6
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;
}
OpenPOWER on IntegriCloud