aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2005-06-01 11:39:42 +0000
committerRobert Watson <rwatson@FreeBSD.org>2005-06-01 11:39:42 +0000
commit6b348152be7348b7d6a522f7ad9d3ddd08e7b7a2 (patch)
treed4be4c7d592c18d440ea6e3c21a143a38ba494ab
parent3ca1570c8223eb9b1891246cb61a3f87de9fd21a (diff)
downloadsrc-6b348152be7348b7d6a522f7ad9d3ddd08e7b7a2.tar.gz
src-6b348152be7348b7d6a522f7ad9d3ddd08e7b7a2.zip
Assert pcbinfo lock in in_pcbdisconnect() and in_pcbdetach(), as the
global pcb lists are modified. MFC after: 7 days
Notes
Notes: svn path=/head/; revision=146859
-rw-r--r--sys/netinet/in_pcb.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index 5e31c42c961a..89f9d5bf0f61 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -692,6 +692,8 @@ void
in_pcbdisconnect(inp)
struct inpcb *inp;
{
+
+ INP_INFO_WLOCK_ASSERT(pcbinfo);
INP_LOCK_ASSERT(inp);
inp->inp_faddr.s_addr = INADDR_ANY;
@@ -711,6 +713,7 @@ in_pcbdetach(inp)
struct socket *so = inp->inp_socket;
struct inpcbinfo *ipi = inp->inp_pcbinfo;
+ INP_INFO_WLOCK_ASSERT(pcbinfo);
INP_LOCK_ASSERT(inp);
#if defined(IPSEC) || defined(FAST_IPSEC)