[SCTP]: Make sure the chunk is off the transmitted list prior to freeing.
In a few instances, we need to remove the chunk from the transmitted list prior to freeing it. This is because the free code doesn't do that any more and so we need to do it manually. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
This commit is contained in:
parent
a869981423
commit
5f9646c3d9
2 changed files with 4 additions and 1 deletions
|
@ -1179,8 +1179,10 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_sackhdr *sack)
|
|||
tchunk = list_entry(lchunk, struct sctp_chunk,
|
||||
transmitted_list);
|
||||
tsn = ntohl(tchunk->subh.data_hdr->tsn);
|
||||
if (TSN_lte(tsn, ctsn))
|
||||
if (TSN_lte(tsn, ctsn)) {
|
||||
list_del_init(&tchunk->transmitted_list);
|
||||
sctp_chunk_free(tchunk);
|
||||
}
|
||||
}
|
||||
|
||||
/* ii) Set rwnd equal to the newly received a_rwnd minus the
|
||||
|
|
|
@ -3224,6 +3224,7 @@ int sctp_process_asconf_ack(struct sctp_association *asoc,
|
|||
}
|
||||
|
||||
/* Free the cached last sent asconf chunk. */
|
||||
list_del_init(&asconf->transmitted_list);
|
||||
sctp_chunk_free(asconf);
|
||||
asoc->addip_last_asconf = NULL;
|
||||
|
||||
|
|
Loading…
Reference in a new issue