svn commit: r208875 - head/sys/netinet
Randall Stewart
rrs at FreeBSD.org
Sun Jun 6 16:09:13 UTC 2010
Author: rrs
Date: Sun Jun 6 16:09:12 2010
New Revision: 208875
URL: http://svn.freebsd.org/changeset/base/208875
Log:
Fix a bug in the sctp_inpcb_free. Basically if the socket
was setup to do an abortive close an association that was
in the accept_queue could get stuck and never freed. Now
we properly start the kill timer on the socket and turn
off the flag (same thing we do for the graceful close method).
MFC after: 1 week
Modified:
head/sys/netinet/sctp_pcb.c
Modified: head/sys/netinet/sctp_pcb.c
==============================================================================
--- head/sys/netinet/sctp_pcb.c Sun Jun 6 16:07:40 2010 (r208874)
+++ head/sys/netinet/sctp_pcb.c Sun Jun 6 16:09:12 2010 (r208875)
@@ -3363,6 +3363,10 @@ sctp_inpcb_free(struct sctp_inpcb *inp,
asoc = nasoc) {
nasoc = LIST_NEXT(asoc, sctp_tcblist);
if (asoc->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) {
+ if (asoc->asoc.state & SCTP_STATE_IN_ACCEPT_QUEUE) {
+ asoc->asoc.state &= ~SCTP_STATE_IN_ACCEPT_QUEUE;
+ sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, asoc, NULL);
+ }
cnt++;
continue;
}
More information about the svn-src-all
mailing list