Skip to content

Commit

Permalink
sctp: Do no select unconfirmed transports for retransmissions
Browse files Browse the repository at this point in the history
An unconfirmed transport is one that we have not been
able to reach since the beginning.  There is no point in
trying to retrasnmit data on those transports.  Also, the
specification forbids it due to security issues.

Reported-by: Frank Schuster <frank.schuster01@web.de>

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
  • Loading branch information
Vlad Yasevich committed May 1, 2010
1 parent bc4f841 commit fbdf501
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions net/sctp/associola.c
Original file line number Diff line number Diff line change
Expand Up @@ -762,7 +762,8 @@ struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
asoc->peer.retran_path = peer;
}

if (asoc->peer.active_path == asoc->peer.retran_path) {
if (asoc->peer.active_path == asoc->peer.retran_path &&
peer->state != SCTP_UNCONFIRMED) {
asoc->peer.retran_path = peer;
}

Expand Down Expand Up @@ -1318,7 +1319,7 @@ void sctp_assoc_update_retran_path(struct sctp_association *asoc)
/* Keep track of the next transport in case
* we don't find any active transport.
*/
if (!next)
if (t->state != SCTP_UNCONFIRMED && !next)
next = t;
}
}
Expand Down

0 comments on commit fbdf501

Please sign in to comment.