Currently dccp_check_seqno allows any valid packet to update the Greatest Sequence Number Received, even if that packet's sequence number is less than the current GSR. This patch adds a check to make sure that the new packet's sequence number is greater than GSR. >>>>>>>>>>>>>>>>>>>>>>>>> Patch Follows <<<<<<<<<<<<<<<<<<<<<<<<<< diff --git a/net/dccp/input.c b/net/dccp/input.c --- a/net/dccp/input.c +++ b/net/dccp/input.c @@ -252,7 +253,10 @@ static int dccp_check_seqno(struct sock *sk, struct sk_buff *skb) if (between48(seqno, lswl, dp->dccps_swh) && (ackno == DCCP_PKT_WITHOUT_ACK_SEQ || between48(ackno, lawl, dp->dccps_awh))) { - dccp_update_gsr(sk, seqno); + + if(after48(seqno, dp->dccps_gsr)){ + dccp_update_gsr(sk, seqno); + } if (dh->dccph_type != DCCP_PKT_SYNC && ackno != DCCP_PKT_WITHOUT_ACK_SEQ &&
Attachment:
signature.asc
Description: This is a digitally signed message part