aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/sctp_pcb.c
diff options
context:
space:
mode:
authorRandall Stewart <rrs@FreeBSD.org>2007-05-04 15:19:10 +0000
committerRandall Stewart <rrs@FreeBSD.org>2007-05-04 15:19:10 +0000
commit1bb552e88d4b99ebdf35a8e3357939eefff63021 (patch)
tree0a452791a76e3987fc2cd69d7a10a720e5ed873a /sys/netinet/sctp_pcb.c
parentbb76df05a5d42f2b7cd544d958503d9de9ac4bfe (diff)
downloadsrc-1bb552e88d4b99ebdf35a8e3357939eefff63021.tar.gz
src-1bb552e88d4b99ebdf35a8e3357939eefff63021.zip
Fixes a missing unlock in the one-2-one hash table, if
it was full and a collision occured, then we would leave a inp locked. Also fixes a missing inp unlock if IPSEC was on and it failed during the attach. Bug found by Weongyo Jeong.
Notes
Notes: svn path=/head/; revision=169254
Diffstat (limited to 'sys/netinet/sctp_pcb.c')
-rw-r--r--sys/netinet/sctp_pcb.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c
index de7e96e4c5dd..31c4bc0d5ed4 100644
--- a/sys/netinet/sctp_pcb.c
+++ b/sys/netinet/sctp_pcb.c
@@ -521,6 +521,7 @@ sctp_tcb_special_locate(struct sctp_inpcb **inp_p, struct sockaddr *from,
continue;
}
if (lport != inp->sctp_lport) {
+ SCTP_INP_RUNLOCK(inp);
continue;
}
if (inp->def_vrf_id != vrf_id) {