diff options
author | Randall Stewart <rrs@FreeBSD.org> | 2007-05-04 15:19:10 +0000 |
---|---|---|
committer | Randall Stewart <rrs@FreeBSD.org> | 2007-05-04 15:19:10 +0000 |
commit | 1bb552e88d4b99ebdf35a8e3357939eefff63021 (patch) | |
tree | 0a452791a76e3987fc2cd69d7a10a720e5ed873a /sys/netinet/sctp_pcb.c | |
parent | bb76df05a5d42f2b7cd544d958503d9de9ac4bfe (diff) | |
download | src-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.c | 1 |
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) { |