[PATCH] SCTP: Allow spillover of receive buffer to avoid deadlock. (CVE-2006-2275)
This patch fixes a deadlock situation in the receive path by allowing temporary spillover of the receive buffer. - If the chunk we receive has a tsn that immediately follows the ctsn, accept it even if we run out of receive buffer space and renege data with higher TSNs. - Once we accept one chunk in a packet, accept all the remaining chunks even if we run out of receive buffer space. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Acked-by: Mark Butler <butlerm@middle.net> Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Chris Wright <chrisw@sous-sol.org>
This commit is contained in:
committed by
Chris Wright
parent
cb19baa0bb
commit
2e2a2cd09d
@@ -702,6 +702,7 @@ struct sctp_chunk {
|
||||
__u8 tsn_gap_acked; /* Is this chunk acked by a GAP ACK? */
|
||||
__s8 fast_retransmit; /* Is this chunk fast retransmitted? */
|
||||
__u8 tsn_missing_report; /* Data chunk missing counter. */
|
||||
__u8 data_accepted; /* At least 1 chunk in this packet accepted */
|
||||
};
|
||||
|
||||
void sctp_chunk_hold(struct sctp_chunk *);
|
||||
|
||||
Reference in New Issue
Block a user