From 2fc4de04e55c19d74fda2e4dd9c2072c96aeb528 Mon Sep 17 00:00:00 2001 From: "Russ Combs (rucombs)" Date: Thu, 14 Mar 2019 11:33:12 -0400 Subject: [PATCH] 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 --- src/stream/libtcp/tcp_stream_tracker.cc | 9 ++++++--- src/stream/tcp/tcp_reassemblers.h | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) 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; -- 2.47.3