From: Juweria Ali Imran (jaliimra) Date: Fri, 23 May 2025 14:46:27 +0000 (+0000) Subject: Pull request #4711: stream_tcp: do not purge seglist data on held packet retransmit X-Git-Tag: 3.8.1.0~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b4f9d083c687c7eaeb96f0e188c258d8c897ad2;p=thirdparty%2Fsnort3.git Pull request #4711: stream_tcp: do not purge seglist data on held packet retransmit Merge in SNORT/snort3 from ~JALIIMRA/snort3:held_packet_retransmit to master Squashed commit of the following: commit 2fba7b400772dec79ab54a19bc52897d949e35d3 Author: Juweria Ali Imran Date: Thu Apr 24 20:36:30 2025 -0400 stream_tcp: do not purge seglist data on held packet retransmit --- diff --git a/src/stream/tcp/tcp_reassembler.cc b/src/stream/tcp/tcp_reassembler.cc index 8a0236ea9..6b2df0fd5 100644 --- a/src/stream/tcp/tcp_reassembler.cc +++ b/src/stream/tcp/tcp_reassembler.cc @@ -567,6 +567,7 @@ void TcpReassemblerBase::flush_queued_segments(Flow* flow, bool clear, Packet* p } } + void TcpReassemblerBase::check_first_segment_hole() { if ( SEQ_LT(seglist.seglist_base_seq, seglist.head->start_seq()) ) @@ -593,11 +594,6 @@ uint32_t TcpReassemblerBase::perform_partial_flush(Packet* p) paf.paf_jump(flushed); tcpStats.partial_flushes++; tcpStats.partial_flush_bytes += flushed; - if ( seglist.seg_count ) - { - purge_to_seq(seglist.head->start_seq() + flushed); - tracker.r_win_base = seglist.seglist_base_seq; - } } return flushed; @@ -672,3 +668,4 @@ TcpReassemblerIgnore* TcpReassemblerIgnore::get_instance(bool server_tracker) return ignore_reassembler_client; } +