Skip to content

Commit c5c7774

Browse files
nhormandavem330
authored andcommitted
sctp: fully initialize sctp_outq in sctp_outq_init
In commit 2f94aab (refactor sctp_outq_teardown to insure proper re-initalization) we modified sctp_outq_teardown to use sctp_outq_init to fully re-initalize the outq structure. Steve West recently asked me why I removed the q->error = 0 initalization from sctp_outq_teardown. I did so because I was operating under the impression that sctp_outq_init would properly initalize that value for us, but it doesn't. sctp_outq_init operates under the assumption that the outq struct is all 0's (as it is when called from sctp_association_init), but using it in __sctp_outq_teardown violates that assumption. We should do a memset in sctp_outq_init to ensure that the entire structure is in a known state there instead. Signed-off-by: Neil Horman <[email protected]> Reported-by: "West, Steve (NSN - US/Fort Worth)" <[email protected]> CC: Vlad Yasevich <[email protected]> CC: [email protected] CC: [email protected] Acked-by: Vlad Yasevich <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent aaf9522 commit c5c7774

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

net/sctp/outqueue.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,18 +206,16 @@ static inline int sctp_cacc_skip(struct sctp_transport *primary,
206206
*/
207207
void sctp_outq_init(struct sctp_association *asoc, struct sctp_outq *q)
208208
{
209+
memset(q, 0, sizeof(struct sctp_outq));
210+
209211
q->asoc = asoc;
210212
INIT_LIST_HEAD(&q->out_chunk_list);
211213
INIT_LIST_HEAD(&q->control_chunk_list);
212214
INIT_LIST_HEAD(&q->retransmit);
213215
INIT_LIST_HEAD(&q->sacked);
214216
INIT_LIST_HEAD(&q->abandoned);
215217

216-
q->fast_rtx = 0;
217-
q->outstanding_bytes = 0;
218218
q->empty = 1;
219-
q->cork = 0;
220-
q->out_qlen = 0;
221219
}
222220

223221
/* Free the outqueue structure and any related pending chunks.

0 commit comments

Comments
 (0)