From: Mike Stepanek (mstepane) Date: Thu, 5 Mar 2020 17:26:43 +0000 (+0000) Subject: Merge pull request #2049 in SNORT/snort3 from ~SMINUT/snort3:flow_mem_leak to master X-Git-Tag: 3.0.0-269~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=88d2712ea0a0c7280e10c4576bc69dca9a3212b8;p=thirdparty%2Fsnort3.git Merge pull request #2049 in SNORT/snort3 from ~SMINUT/snort3:flow_mem_leak to master Squashed commit of the following: commit ac638bb058bbb634528feb5d666a46e85d53efdb Author: Silviu Minut Date: Fri Feb 28 16:05:33 2020 -0500 flow: free the flow data before deleting the actual flow --- diff --git a/src/flow/flow.cc b/src/flow/flow.cc index f6b4ca4cd..d9a2e2fd5 100644 --- a/src/flow/flow.cc +++ b/src/flow/flow.cc @@ -108,7 +108,8 @@ void Flow::term() delete session; session = nullptr; - assert(!flow_data); + if ( flow_data ) + free_flow_data(); if ( mpls_client.length ) delete[] mpls_client.start; @@ -140,6 +141,9 @@ void Flow::term() if (assistant_gadget) assistant_gadget->rem_ref(); + if ( data ) + clear_data(); + if ( ha_state ) delete ha_state; diff --git a/src/flow/test/flow_cache_test.cc b/src/flow/test/flow_cache_test.cc index 21f7e7764..45415f866 100644 --- a/src/flow/test/flow_cache_test.cc +++ b/src/flow/test/flow_cache_test.cc @@ -69,6 +69,7 @@ DetectionEngine::~DetectionEngine() { } void Flow::init(PktType) { } void Flow::term() { } void Flow::reset(bool) { } +void Flow::free_flow_data() { } void set_network_policy(SnortConfig*, unsigned) { } void DataBus::publish(const char*, const uint8_t*, unsigned, Flow*) { } void DataBus::publish(const char*, Packet*, Flow*) { }