tcp: Fix dissection of DSACK

DSACK blocks (the first SACK block in a TCP SACK option, with right edge
being lower or equal to the ACK filed) are now identified correctly.

Closes #17315


(cherry picked from commit 7179e1d1fb)
This commit is contained in:
Christian Reusch 2021-06-03 22:45:34 +02:00 committed by Pascal Quantin
parent 57776c7641
commit 9eb1c665c6
1 changed files with 1 additions and 1 deletions

View File

@ -4250,7 +4250,7 @@ dissect_tcpopt_sack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
* (1) A D-SACK block is only used to report a duplicate contiguous sequence of data received by
* the receiver in the most recent packet.
*/
if (GE_SEQ(tcph->sack_right_edge[0], tcph->th_ack) ||
if (LE_SEQ(tcph->sack_right_edge[0], tcph->th_ack) ||
(tcph->num_sack_ranges > 1 &&
LT_SEQ(tcph->sack_left_edge[1], tcph->sack_right_edge[0]) &&
GE_SEQ(tcph->sack_right_edge[1], tcph->sack_right_edge[0]))