From: Bhargava Jandhyala (bjandhya) Date: Tue, 27 Apr 2021 06:40:35 +0000 (+0000) Subject: Merge pull request #2861 in SNORT/snort3 from ~DIPANDIT/snort3:smb_memtrack to master X-Git-Tag: 3.1.5.0~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2fa17b2945694ea1b43a434d44e5d1e5f62e7647;p=thirdparty%2Fsnort3.git Merge pull request #2861 in SNORT/snort3 from ~DIPANDIT/snort3:smb_memtrack to master Squashed commit of the following: commit 865dfc8eeccc40795e559c9d8bb21f82700055b1 Author: Dipto Pandit (dipandit) Date: Fri Apr 23 09:51:38 2021 -0400 dce_rpc: update memory tracking for smb session data --- diff --git a/src/service_inspectors/dce_rpc/dce_smb1.cc b/src/service_inspectors/dce_rpc/dce_smb1.cc index 71b9a304c..93af9db84 100644 --- a/src/service_inspectors/dce_rpc/dce_smb1.cc +++ b/src/service_inspectors/dce_rpc/dce_smb1.cc @@ -24,6 +24,8 @@ #include "dce_smb1.h" +#include "memory/memory_cap.h" + #include "dce_smb_utils.h" using namespace snort; @@ -314,6 +316,13 @@ Dce2Smb1SessionData::Dce2Smb1SessionData(const Packet* p, ssd.sd = sd; ssd.policy = policy; debug_logf(dce_smb_trace, p, "smb1 session created\n"); + memory::MemoryCap::update_allocations(sizeof(*this)); +} + +Dce2Smb1SessionData::~Dce2Smb1SessionData() +{ + DCE2_SmbDataFree(&ssd); + memory::MemoryCap::update_deallocations(sizeof(*this)); } void Dce2Smb1SessionData::process() diff --git a/src/service_inspectors/dce_rpc/dce_smb1.h b/src/service_inspectors/dce_rpc/dce_smb1.h index 88bc18d92..5efe91369 100644 --- a/src/service_inspectors/dce_rpc/dce_smb1.h +++ b/src/service_inspectors/dce_rpc/dce_smb1.h @@ -273,8 +273,7 @@ class Dce2Smb1SessionData : public Dce2SmbSessionData public: Dce2Smb1SessionData() = delete; Dce2Smb1SessionData(const snort::Packet*, const dce2SmbProtoConf* proto); - ~Dce2Smb1SessionData() override - { DCE2_SmbDataFree(&ssd); } + ~Dce2Smb1SessionData() override; void process() override; void handle_retransmit(FilePosition, FileVerdict) override { } void set_reassembled_data(uint8_t*, uint16_t) override; diff --git a/src/service_inspectors/dce_rpc/dce_smb2.cc b/src/service_inspectors/dce_rpc/dce_smb2.cc index 33262cb55..ae72bca5b 100644 --- a/src/service_inspectors/dce_rpc/dce_smb2.cc +++ b/src/service_inspectors/dce_rpc/dce_smb2.cc @@ -105,6 +105,7 @@ Dce2Smb2SessionData::Dce2Smb2SessionData(const Packet* p, tcp_file_tracker = nullptr; flow_key = get_smb2_flow_key(); debug_logf(dce_smb_trace, p, "smb2 session created\n"); + memory::MemoryCap::update_allocations(sizeof(*this)); } Dce2Smb2SessionData::~Dce2Smb2SessionData(void) @@ -114,6 +115,7 @@ Dce2Smb2SessionData::~Dce2Smb2SessionData(void) if (it_session.second->detach_flow(flow_key)) smb2_session_cache->remove(it_session.second->get_key()); } + memory::MemoryCap::update_deallocations(sizeof(*this)); } void Dce2Smb2SessionData::reset_matching_tcp_file_tracker(