From 163483e8d4bbfb86258eb1585d12ccb122d6f967 Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Tue, 16 Feb 2016 23:30:14 -0300 Subject: [PATCH] Fix memory management on the rules' messages --- src/rule.cc | 2 ++ src/transaction.cc | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/rule.cc b/src/rule.cc index dc918194..d9027673 100644 --- a/src/rule.cc +++ b/src/rule.cc @@ -521,6 +521,8 @@ bool Rule::evaluate(Transaction *trasn) { if ((!m_log_message.empty() || !m_log_data.empty()) && !ruleMessage->m_match.empty()) { ruleMessage->m_data = m_log_data; trasn->m_rulesMessages.push_back(ruleMessage); + } else { + delete ruleMessage; } return ret; diff --git a/src/transaction.cc b/src/transaction.cc index 3834c4c4..19ea27ad 100644 --- a/src/transaction.cc +++ b/src/transaction.cc @@ -148,6 +148,10 @@ Transaction::~Transaction() { m_requestBody.str(std::string()); m_requestBody.clear(); + for (auto *a : m_rulesMessages) { + delete a; + } + m_rules->decrementReferenceCount(); }