diff options
author | tuexen <tuexen@FreeBSD.org> | 2012-09-22 22:04:17 +0000 |
---|---|---|
committer | tuexen <tuexen@FreeBSD.org> | 2012-09-22 22:04:17 +0000 |
commit | fa9edb685ba4be52ba2b3c6364bdf03cd100c070 (patch) | |
tree | 963bb0cdc3e90e09a49286fec929ccd10e1314b2 /sys/netinet/sctp_input.c | |
parent | 9d2d29036982345e1cf61816192bd16627e8a37f (diff) | |
download | FreeBSD-src-fa9edb685ba4be52ba2b3c6364bdf03cd100c070.zip FreeBSD-src-fa9edb685ba4be52ba2b3c6364bdf03cd100c070.tar.gz |
Fix a bug related to handling Re-config chunks. It is not true that
the association can be removed if the socket is gone.
MFC after: 3 days
Diffstat (limited to 'sys/netinet/sctp_input.c')
-rw-r--r-- | sys/netinet/sctp_input.c | 17 |
1 files changed, 0 insertions, 17 deletions
diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c index 7f038d4..c49e174 100644 --- a/sys/netinet/sctp_input.c +++ b/sys/netinet/sctp_input.c @@ -5387,23 +5387,6 @@ process_control_chunks: *offset = length; return (NULL); } - if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) { - /* We are not interested anymore */ -#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING) - so = SCTP_INP_SO(inp); - atomic_add_int(&stcb->asoc.refcnt, 1); - SCTP_TCB_UNLOCK(stcb); - SCTP_SOCKET_LOCK(so, 1); - SCTP_TCB_LOCK(stcb); - atomic_subtract_int(&stcb->asoc.refcnt, 1); -#endif - (void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC, SCTP_FROM_SCTP_INPUT + SCTP_LOC_30); -#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING) - SCTP_SOCKET_UNLOCK(so, 1); -#endif - *offset = length; - return (NULL); - } if (stcb->asoc.peer_supports_strreset == 0) { /* * hmm, peer should have announced this, but |