]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #1548 in SNORT/snort3 from ~RUCOMBS/snort3:paf_patch to master
authorRuss Combs (rucombs) <rucombs@cisco.com>
Thu, 14 Mar 2019 15:33:12 +0000 (11:33 -0400)
committerRuss Combs (rucombs) <rucombs@cisco.com>
Thu, 14 Mar 2019 15:33:12 +0000 (11:33 -0400)
Squashed commit of the following:

commit d1f14a7c72073ae035240923469ca9f9e2802740
Author: russ <rucombs@cisco.com>
Date:   Wed Mar 13 17:10:20 2019 -0400

    stream_tcp: reset paf segment when switching splitters

src/stream/libtcp/tcp_stream_tracker.cc
src/stream/tcp/tcp_reassemblers.h

index 2fb1d99ba3173a410dbb3fc76cd905607725a6cc..4257966309bc503c4335641962f433d0bd5f8d0e 100644 (file)
@@ -221,10 +221,13 @@ void TcpStreamTracker::set_splitter(StreamSplitter* ss)
 
     splitter = ss;
 
-    if ( ss )
-        paf_setup(&paf_state);
-    else
+    if ( !splitter )
         flush_policy = STREAM_FLPOLICY_IGNORE;
+    else
+    {
+        paf_setup(&paf_state);
+        reassembler.reset_paf_segment();
+    }
 }
 
 void TcpStreamTracker::set_splitter(const Flow* flow)
index fde04bbb980433eca11a252e432fe035df10e50a..745a1abc801aa3aaaac36ecfa1e8aac321f77274 100644 (file)
@@ -106,6 +106,9 @@ public:
     void set_norm_mode_test()
     { trs.sos.tcp_ips_data = NORM_MODE_TEST; }
 
+    void reset_paf_segment()
+    { trs.sos.seglist.cur_pseg = nullptr; }
+
 private:
     TcpReassembler* reassembler = nullptr;
     TcpReassemblerState trs;