mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-16 07:56:12 +03:00
Fix memory leak of RuleMessages objects
This commit is contained in:
parent
29364052cd
commit
ab6754712c
2
CHANGES
2
CHANGES
@ -1,6 +1,8 @@
|
|||||||
v3.x.y - YYYY-MMM-DD (to be released)
|
v3.x.y - YYYY-MMM-DD (to be released)
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
|
|
||||||
|
- Fix memory leak of RuleMessages objects
|
||||||
|
[#2376 - @WGH-, @martinhsv]
|
||||||
- Produce not-supported error for ctl:forceRequestBodyVariable
|
- Produce not-supported error for ctl:forceRequestBodyVariable
|
||||||
and ctl:auditEngine
|
and ctl:auditEngine
|
||||||
[#2376 - @WGH-, @martinhsv]
|
[#2376 - @WGH-, @martinhsv]
|
||||||
|
@ -343,7 +343,7 @@ class TransactionRuleMessageManagement {
|
|||||||
* of the actions: `log_data' and `msg'. These should be included on the
|
* of the actions: `log_data' and `msg'. These should be included on the
|
||||||
* auditlogs.
|
* auditlogs.
|
||||||
*/
|
*/
|
||||||
std::list<RuleMessage *> m_rulesMessages;
|
std::list<std::shared_ptr<RuleMessage>> m_rulesMessages;
|
||||||
|
|
||||||
Transaction *m_transaction;
|
Transaction *m_transaction;
|
||||||
};
|
};
|
||||||
|
@ -64,11 +64,11 @@ namespace modsecurity {
|
|||||||
|
|
||||||
|
|
||||||
RuleMessage *TransactionRuleMessageManagement::messageGetLast() {
|
RuleMessage *TransactionRuleMessageManagement::messageGetLast() {
|
||||||
return m_rulesMessages.back();
|
return m_rulesMessages.back().get();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransactionRuleMessageManagement::logMatchLastRuleOnTheChain(const RuleWithActions *rule) {
|
void TransactionRuleMessageManagement::logMatchLastRuleOnTheChain(const RuleWithActions *rule) {
|
||||||
RuleMessage *rm = m_rulesMessages.back();
|
RuleMessage *rm = m_rulesMessages.back().get();
|
||||||
|
|
||||||
rm->setRule(rule);
|
rm->setRule(rule);
|
||||||
|
|
||||||
@ -85,13 +85,13 @@ void TransactionRuleMessageManagement::logMatchLastRuleOnTheChain(const RuleWith
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TransactionRuleMessageManagement::messageNew() {
|
void TransactionRuleMessageManagement::messageNew() {
|
||||||
m_rulesMessages.push_back(new RuleMessage(m_transaction));
|
m_rulesMessages.push_back(std::make_shared<RuleMessage>(m_transaction));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::list<RuleMessage *> TransactionRuleMessageManagement::messageGetAll() {
|
std::list<RuleMessage *> TransactionRuleMessageManagement::messageGetAll() {
|
||||||
std::list<RuleMessage *> messages;
|
std::list<RuleMessage *> messages;
|
||||||
for (RuleMessage *a : m_rulesMessages) {
|
for (auto iter = m_rulesMessages.begin(); iter != m_rulesMessages.end(); ++iter) {
|
||||||
messages.push_back(a);
|
messages.push_back((*iter).get());
|
||||||
}
|
}
|
||||||
return messages;
|
return messages;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user