aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Jero <sj323707@ohio.edu>2010-12-30 06:15:41 -0500
committerGerrit Renker <gerrit@erg.abdn.ac.uk>2011-01-07 06:22:43 -0500
commit763dadd47c884853a22f2f19ea27e58431303ff3 (patch)
tree9ee3daff6fe649578d3fabdc0a1fcf8252b7b660
parent2cf5be93d1b704f342ad423a49f0e78d73939e66 (diff)
dccp: fix bug in updating the GSR
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. Signed-off-by: Samuel Jero <sj323707@ohio.edu> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
-rw-r--r--net/dccp/dccp.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h
index 45087052d894..5fdb07229017 100644
--- a/net/dccp/dccp.h
+++ b/net/dccp/dccp.h
@@ -426,7 +426,8 @@ static inline void dccp_update_gsr(struct sock *sk, u64 seq)
426{ 426{
427 struct dccp_sock *dp = dccp_sk(sk); 427 struct dccp_sock *dp = dccp_sk(sk);
428 428
429 dp->dccps_gsr = seq; 429 if (after48(seq, dp->dccps_gsr))
430 dp->dccps_gsr = seq;
430 /* Sequence validity window depends on remote Sequence Window (7.5.1) */ 431 /* Sequence validity window depends on remote Sequence Window (7.5.1) */
431 dp->dccps_swl = SUB48(ADD48(dp->dccps_gsr, 1), dp->dccps_r_seq_win / 4); 432 dp->dccps_swl = SUB48(ADD48(dp->dccps_gsr, 1), dp->dccps_r_seq_win / 4);
432 /* 433 /*