Fix assorted memory and static analysis errors

This commit is contained in:
Felipe Zimmerle
2017-01-31 17:15:31 -03:00
committed by Felipe Zimmerle
parent 8d0583eda4
commit e95efa05cc
62 changed files with 209 additions and 189 deletions

View File

@@ -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);

View File

@@ -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_

View File

@@ -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;

View File

@@ -25,6 +25,7 @@
#include <cstdio>
#include <string>
#include <list>
#include <memory>
#endif
#include "modsecurity/collection/collection.h"

View File

@@ -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;