diff options
Diffstat (limited to 'net/sctp/sm_statefuns.c')
-rw-r--r-- | net/sctp/sm_statefuns.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c index 45b8bcafd827..a7f18a352364 100644 --- a/net/sctp/sm_statefuns.c +++ b/net/sctp/sm_statefuns.c | |||
@@ -3543,6 +3543,12 @@ sctp_disposition_t sctp_sf_do_asconf(const struct sctp_endpoint *ep, | |||
3543 | asconf_ack = sctp_assoc_lookup_asconf_ack(asoc, hdr->serial); | 3543 | asconf_ack = sctp_assoc_lookup_asconf_ack(asoc, hdr->serial); |
3544 | if (!asconf_ack) | 3544 | if (!asconf_ack) |
3545 | return SCTP_DISPOSITION_DISCARD; | 3545 | return SCTP_DISPOSITION_DISCARD; |
3546 | |||
3547 | /* Reset the transport so that we select the correct one | ||
3548 | * this time around. This is to make sure that we don't | ||
3549 | * accidentally use a stale transport that's been removed. | ||
3550 | */ | ||
3551 | asconf_ack->transport = NULL; | ||
3546 | } else { | 3552 | } else { |
3547 | /* ADDIP 5.2 E5) Otherwise, the ASCONF Chunk is discarded since | 3553 | /* ADDIP 5.2 E5) Otherwise, the ASCONF Chunk is discarded since |
3548 | * it must be either a stale packet or from an attacker. | 3554 | * it must be either a stale packet or from an attacker. |