From c236bed0bd79ec1f9be56320ff6be9d1681adcd3 Mon Sep 17 00:00:00 2001 From: Kamil Skalski Date: Wed, 25 Oct 2023 12:28:35 +0700 Subject: [PATCH] Ignore segments older than consumed for peer. --- libpcap-analyzer/src/tcp_reassembly.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libpcap-analyzer/src/tcp_reassembly.rs b/libpcap-analyzer/src/tcp_reassembly.rs index ff19e40..d22db4d 100644 --- a/libpcap-analyzer/src/tcp_reassembly.rs +++ b/libpcap-analyzer/src/tcp_reassembly.rs @@ -539,6 +539,15 @@ fn queue_segment(peer: &mut TcpPeer, segment: TcpSegment) { if segment.data.is_empty() && segment.flags & TcpFlags::FIN == 0 { return; } + + if segment.rel_seq < peer.next_rel_seq { + warn!( + "Segment with rel_seq {} is too old (next_rel_seq={})", + segment.rel_seq, peer.next_rel_seq + ); + return; + } + // // DEBUG // for (n, s) in peer.segments.iter().enumerate() { // debug!(