diff options
-rw-r--r-- | net/sctp/outqueue.c | 4 | ||||
-rw-r--r-- | net/sctp/sm_make_chunk.c | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index 3c2a281347e1..1bb3c5c35d2a 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c | |||
@@ -1179,8 +1179,10 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_sackhdr *sack) | |||
1179 | tchunk = list_entry(lchunk, struct sctp_chunk, | 1179 | tchunk = list_entry(lchunk, struct sctp_chunk, |
1180 | transmitted_list); | 1180 | transmitted_list); |
1181 | tsn = ntohl(tchunk->subh.data_hdr->tsn); | 1181 | tsn = ntohl(tchunk->subh.data_hdr->tsn); |
1182 | if (TSN_lte(tsn, ctsn)) | 1182 | if (TSN_lte(tsn, ctsn)) { |
1183 | list_del_init(&tchunk->transmitted_list); | ||
1183 | sctp_chunk_free(tchunk); | 1184 | sctp_chunk_free(tchunk); |
1185 | } | ||
1184 | } | 1186 | } |
1185 | 1187 | ||
1186 | /* ii) Set rwnd equal to the newly received a_rwnd minus the | 1188 | /* ii) Set rwnd equal to the newly received a_rwnd minus the |
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c index 80b3c4f09e6c..e45be4e3f80d 100644 --- a/net/sctp/sm_make_chunk.c +++ b/net/sctp/sm_make_chunk.c | |||
@@ -3224,6 +3224,7 @@ int sctp_process_asconf_ack(struct sctp_association *asoc, | |||
3224 | } | 3224 | } |
3225 | 3225 | ||
3226 | /* Free the cached last sent asconf chunk. */ | 3226 | /* Free the cached last sent asconf chunk. */ |
3227 | list_del_init(&asconf->transmitted_list); | ||
3227 | sctp_chunk_free(asconf); | 3228 | sctp_chunk_free(asconf); |
3228 | asoc->addip_last_asconf = NULL; | 3229 | asoc->addip_last_asconf = NULL; |
3229 | 3230 | ||