mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-29 11:16:33 +03:00
Fix assorted memory and static analysis errors
This commit is contained in:
committed by
Felipe Zimmerle
parent
8d0583eda4
commit
e95efa05cc
@@ -25,9 +25,8 @@
|
||||
#include <unordered_map>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#endif
|
||||
|
||||
#include "modsecurity/collection/variable.h"
|
||||
@@ -40,7 +39,7 @@
|
||||
namespace modsecurity {
|
||||
class Transaction;
|
||||
namespace Utils {
|
||||
class Regex;
|
||||
class Regex;
|
||||
}
|
||||
|
||||
|
||||
@@ -66,8 +65,8 @@ struct MyHash{
|
||||
};
|
||||
|
||||
|
||||
class AnchoredSetVariable : public std::unordered_multimap<std::string, collection::Variable *,
|
||||
MyHash, MyEqual> {
|
||||
class AnchoredSetVariable : public std::unordered_multimap<std::string,
|
||||
collection::Variable *, MyHash, MyEqual> {
|
||||
public:
|
||||
AnchoredSetVariable(Transaction *t, std::string name);
|
||||
~AnchoredSetVariable();
|
||||
@@ -76,6 +75,7 @@ class AnchoredSetVariable : public std::unordered_multimap<std::string, collecti
|
||||
|
||||
void set(const std::string &key, const std::string &value,
|
||||
size_t offset);
|
||||
void setCopy(std::string key, std::string value, size_t offset);
|
||||
|
||||
void resolve(std::vector<const collection::Variable *> *l);
|
||||
|
||||
|
@@ -25,6 +25,7 @@
|
||||
#include <unordered_map>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
#endif
|
||||
|
||||
#include "modsecurity/collection/variable.h"
|
||||
@@ -64,5 +65,5 @@ class AnchoredVariable {
|
||||
#endif
|
||||
|
||||
|
||||
#endif // HEADERS_MODSECURITY_ANCHORED_SET_VARIABLE_H_
|
||||
#endif // HEADERS_MODSECURITY_ANCHORED_VARIABLE_H_
|
||||
|
||||
|
@@ -21,6 +21,7 @@
|
||||
#include <list>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -50,7 +51,8 @@ class Collection {
|
||||
|
||||
virtual void del(const std::string& key) = 0;
|
||||
|
||||
virtual std::unique_ptr<std::string> resolveFirst(const std::string& var) = 0;
|
||||
virtual std::unique_ptr<std::string> resolveFirst(
|
||||
const std::string& var) = 0;
|
||||
|
||||
virtual void resolveSingleMatch(const std::string& var,
|
||||
std::vector<const Variable *> *l) = 0;
|
||||
|
@@ -25,6 +25,7 @@
|
||||
#include <cstdio>
|
||||
#include <string>
|
||||
#include <list>
|
||||
#include <memory>
|
||||
#endif
|
||||
|
||||
#include "modsecurity/collection/collection.h"
|
||||
|
@@ -19,6 +19,7 @@
|
||||
#include <string>
|
||||
#include <list>
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
#endif
|
||||
|
||||
#ifndef HEADERS_MODSECURITY_RULE_H_
|
||||
@@ -48,21 +49,20 @@ class Rule {
|
||||
std::vector<actions::Action *> *_actions,
|
||||
std::string fileName,
|
||||
int lineNumber);
|
||||
Rule(std::__cxx11::string marker);
|
||||
explicit Rule(std::__cxx11::string marker);
|
||||
~Rule();
|
||||
|
||||
bool evaluate(Transaction *transaction);
|
||||
bool evaluateActions(Transaction *transaction);
|
||||
std::vector<std::unique_ptr<collection::Variable>> getFinalVars(Transaction *trasn);
|
||||
std::vector<std::unique_ptr<collection::Variable>>
|
||||
getFinalVars(Transaction *trasn);
|
||||
void executeActionsAfterFullMatch(Transaction *trasn,
|
||||
bool containsDisruptive, RuleMessage *ruleMessage);
|
||||
std::list<
|
||||
std::pair<
|
||||
std::unique_ptr<std::string>,
|
||||
std::unique_ptr<std::string>
|
||||
>
|
||||
> executeSecDefaultActionTransofrmations(
|
||||
|
||||
std::list<std::pair<std::shared_ptr<std::string>,
|
||||
std::shared_ptr<std::string>>> executeDefaultTransformations(
|
||||
Transaction *trasn, const std::string &value, bool multiMatch);
|
||||
|
||||
bool executeOperatorAt(Transaction *trasn, std::string key,
|
||||
std::string value, RuleMessage *rm);
|
||||
void executeActionsIndependentOfChainedRuleResult(Transaction *trasn,
|
||||
@@ -111,6 +111,7 @@ class Rule {
|
||||
bool m_secMarker;
|
||||
std::vector<Variables::Variable *> *m_variables;
|
||||
std::string m_ver;
|
||||
|
||||
private:
|
||||
bool m_unconditional;
|
||||
int m_referenceCount;
|
||||
|
Reference in New Issue
Block a user