Эх сурвалжийг харах

tcp: fix validation of D-SACK

D-SACK is allowed to reside below snd_una. But the corresponding check
in tcp_is_sackblock_valid() is the exact opposite. It looks like a typo.

Signed-off-by: Zheng Yan <zheng.z.yan@intel.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Zheng Yan 13 жил өмнө
parent
commit
f779b2d60a

+ 1 - 1
net/ipv4/tcp_input.c

@@ -1124,7 +1124,7 @@ static int tcp_is_sackblock_valid(struct tcp_sock *tp, int is_dsack,
 		return 0;
 		return 0;
 
 
 	/* ...Then it's D-SACK, and must reside below snd_una completely */
 	/* ...Then it's D-SACK, and must reside below snd_una completely */
-	if (!after(end_seq, tp->snd_una))
+	if (after(end_seq, tp->snd_una))
 		return 0;
 		return 0;
 
 
 	if (!before(start_seq, tp->undo_marker))
 	if (!before(start_seq, tp->undo_marker))