Commit 11d3c949 authored by David S. Miller's avatar David S. Miller

Merge branch 'sctp-dupcookie-fixes'

Xin Long says:

====================
sctp: a bunch of fixes for processing dupcookie

After introducing transport hashtable and per stream info into sctp,
some regressions were caused when processing dupcookie, this patchset
is to fix them.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 12e8b570 7e062977
...@@ -1176,7 +1176,9 @@ void sctp_assoc_update(struct sctp_association *asoc, ...@@ -1176,7 +1176,9 @@ void sctp_assoc_update(struct sctp_association *asoc,
asoc->ctsn_ack_point = asoc->next_tsn - 1; asoc->ctsn_ack_point = asoc->next_tsn - 1;
asoc->adv_peer_ack_point = asoc->ctsn_ack_point; asoc->adv_peer_ack_point = asoc->ctsn_ack_point;
if (!asoc->stream) {
if (sctp_state(asoc, COOKIE_WAIT)) {
sctp_stream_free(asoc->stream);
asoc->stream = new->stream; asoc->stream = new->stream;
new->stream = NULL; new->stream = NULL;
} }
......
...@@ -2454,16 +2454,11 @@ int sctp_process_init(struct sctp_association *asoc, struct sctp_chunk *chunk, ...@@ -2454,16 +2454,11 @@ int sctp_process_init(struct sctp_association *asoc, struct sctp_chunk *chunk,
* stream sequence number shall be set to 0. * stream sequence number shall be set to 0.
*/ */
/* Allocate storage for the negotiated streams if it is not a temporary
* association.
*/
if (!asoc->temp) {
if (sctp_stream_init(asoc, gfp)) if (sctp_stream_init(asoc, gfp))
goto clean_up; goto clean_up;
if (sctp_assoc_set_id(asoc, gfp)) if (!asoc->temp && sctp_assoc_set_id(asoc, gfp))
goto clean_up; goto clean_up;
}
/* ADDIP Section 4.1 ASCONF Chunk Procedures /* ADDIP Section 4.1 ASCONF Chunk Procedures
* *
......
...@@ -2088,6 +2088,9 @@ sctp_disposition_t sctp_sf_do_5_2_4_dupcook(struct net *net, ...@@ -2088,6 +2088,9 @@ sctp_disposition_t sctp_sf_do_5_2_4_dupcook(struct net *net,
} }
} }
/* Set temp so that it won't be added into hashtable */
new_asoc->temp = 1;
/* Compare the tie_tag in cookie with the verification tag of /* Compare the tie_tag in cookie with the verification tag of
* current association. * current association.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment