From: Russ Combs (rucombs) Date: Thu, 14 Mar 2019 15:33:12 +0000 (-0400) Subject: Merge pull request #1548 in SNORT/snort3 from ~RUCOMBS/snort3:paf_patch to master X-Git-Tag: 3.0.0-251~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2fc4de04e55c19d74fda2e4dd9c2072c96aeb528;p=thirdparty%2Fsnort3.git Merge pull request #1548 in SNORT/snort3 from ~RUCOMBS/snort3:paf_patch to master Squashed commit of the following: commit d1f14a7c72073ae035240923469ca9f9e2802740 Author: russ Date: Wed Mar 13 17:10:20 2019 -0400 stream_tcp: reset paf segment when switching splitters --- diff --git a/src/stream/libtcp/tcp_stream_tracker.cc b/src/stream/libtcp/tcp_stream_tracker.cc index 2fb1d99ba..425796630 100644 --- a/src/stream/libtcp/tcp_stream_tracker.cc +++ b/src/stream/libtcp/tcp_stream_tracker.cc @@ -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) diff --git a/src/stream/tcp/tcp_reassemblers.h b/src/stream/tcp/tcp_reassemblers.h index fde04bbb9..745a1abc8 100644 --- a/src/stream/tcp/tcp_reassemblers.h +++ b/src/stream/tcp/tcp_reassemblers.h @@ -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;