]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #4338: stream_tcp: use default size atomsplitter on fallback
authorMichael Matirko (mmatirko) <mmatirko@cisco.com>
Thu, 6 Jun 2024 18:52:29 +0000 (18:52 +0000)
committerSteven Baigal (sbaigal) <sbaigal@cisco.com>
Thu, 6 Jun 2024 18:52:29 +0000 (18:52 +0000)
Merge in SNORT/snort3 from ~MMATIRKO/snort3:atom-size to master

Squashed commit of the following:

commit de2b23a4b0b83f060aa8f92797a32bac0d688f84
Author: Michael Matirko <mmatirko@cisco.com>
Date:   Mon Apr 22 15:28:50 2024 -0400

    stream_tcp: use default size atomsplitter on fallback

src/stream/tcp/tcp_reassembler.cc

index 48211078a471197c39e088eb72babc9274eb112b..9b4ab398ea7b0bc77f861004843ad96593317bfa 100644 (file)
@@ -917,11 +917,11 @@ int32_t TcpReassembler::scan_data_pre_ack(TcpReassemblerState& trs, uint32_t* fl
 
     if ( tsn )
         update_rcv_nxt(trs, *tsn);
-    
+
     return ret_val;
 }
 
-static inline void fallback(TcpStreamTracker& trk, bool server_side, uint16_t max)
+static inline void fallback(TcpStreamTracker& trk, bool server_side)
 {
 #ifndef NDEBUG
     StreamSplitter* splitter = trk.get_splitter();
@@ -932,14 +932,13 @@ static inline void fallback(TcpStreamTracker& trk, bool server_side, uint16_t ma
     assert(server_side == to_server && server_side == !trk.client_tracker);
 #endif
 
-    trk.set_splitter(new AtomSplitter(server_side, max));
+    trk.set_splitter(new AtomSplitter(server_side));
     tcpStats.partial_fallbacks++;
 }
 
 void TcpReassembler::fallback(TcpStreamTracker& tracker, bool server_side)
 {
-    uint16_t max = tracker.session->tcp_config->paf_max;
-    ::fallback(tracker, server_side, max);
+    ::fallback(tracker, server_side);
 
     Flow* flow = tracker.session->flow;
     if ( server_side )
@@ -950,6 +949,10 @@ void TcpReassembler::fallback(TcpStreamTracker& tracker, bool server_side)
     if ( flow->gadget and both_splitters_aborted(flow) )
     {
         flow->clear_gadget();
+
+        if (flow->clouseau)
+            flow->clear_clouseau();
+
         tcpStats.inspector_fallbacks++;
     }
 }