forked from osmocom/wireshark
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:
parent
57776c7641
commit
9eb1c665c6
|
@ -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
|
* (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.
|
* 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 &&
|
(tcph->num_sack_ranges > 1 &&
|
||||||
LT_SEQ(tcph->sack_left_edge[1], tcph->sack_right_edge[0]) &&
|
LT_SEQ(tcph->sack_left_edge[1], tcph->sack_right_edge[0]) &&
|
||||||
GE_SEQ(tcph->sack_right_edge[1], tcph->sack_right_edge[0]))
|
GE_SEQ(tcph->sack_right_edge[1], tcph->sack_right_edge[0]))
|
||||||
|
|
Loading…
Reference in New Issue