summaryrefslogtreecommitdiffstats
path: root/sys/netinet/in_pcb.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2003-11-13 05:18:23 +0000
committersam <sam@FreeBSD.org>2003-11-13 05:18:23 +0000
commit64b81ef0ad84feb9d95a8b5468c68d73e1babd6b (patch)
tree5b2344bf10be89ce444b7f75c83a5a5e2773be13 /sys/netinet/in_pcb.c
parent135a94b34b4288a6f5ff890b035519c060fa1a1c (diff)
downloadFreeBSD-src-64b81ef0ad84feb9d95a8b5468c68d73e1babd6b.zip
FreeBSD-src-64b81ef0ad84feb9d95a8b5468c68d73e1babd6b.tar.gz
add missing inpcb lock before call to tcp_twclose (which reclaims the inpcb)
Supported by: FreeBSD Foundation
Diffstat (limited to 'sys/netinet/in_pcb.c')
-rw-r--r--sys/netinet/in_pcb.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index 48fed21..480c50e 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -1000,6 +1000,7 @@ in_pcblookup_local(pcbinfo, laddr, lport_arg, wild_okay)
*/
if ((inp->inp_vflag & INP_TIMEWAIT) != 0) {
if (tcp_twrecycleable((struct tcptw *)inp->inp_ppcb)) {
+ INP_LOCK(inp);
tcp_twclose((struct tcptw *)inp->inp_ppcb, 0);
match = NULL;
goto retrylookup;
OpenPOWER on IntegriCloud