Correct the usage of modsecurity::Phases::NUMBER_OF_PHASES

This commit is contained in:
Wenfeng Liu 2018-11-21 06:28:20 +00:00 committed by Felipe Zimmerle
parent ce3abf2626
commit 3b3004d24d
No known key found for this signature in database
GPG Key ID: E6DFB08CE8B11277
4 changed files with 10 additions and 17 deletions

View File

@ -415,7 +415,7 @@ class RulesProperties {
to->m_responseBodyTypeToBeInspected.m_set = true;
}
for (int i = 0; i <= modsecurity::Phases::NUMBER_OF_PHASES; i++) {
for (int i = 0; i < modsecurity::Phases::NUMBER_OF_PHASES; i++) {
std::vector<actions::Action *> *actions_from = \
from->m_defaultActions+i;
std::vector<actions::Action *> *actions_to = to->m_defaultActions+i;
@ -535,8 +535,8 @@ class RulesProperties {
ConfigString m_uploadTmpDirectory;
ConfigString m_secArgumentSeparator;
ConfigString m_secWebAppId;
std::vector<actions::Action *> m_defaultActions[8];
std::vector<modsecurity::Rule *> m_rules[8];
std::vector<actions::Action *> m_defaultActions[modsecurity::Phases::NUMBER_OF_PHASES];
std::vector<modsecurity::Rule *> m_rules[modsecurity::Phases::NUMBER_OF_PHASES];
ConfigUnicodeMap m_unicodeMapTable;
};

View File

@ -51,6 +51,9 @@ bool Phase::init(std::string *error) {
} else if (m_phase == 5) {
m_phase = modsecurity::Phases::LoggingPhase;
m_secRulesPhase = 5;
} else {
error->assign("Unknown phase: " + m_parser_payload);
return false;
}
} catch (...) {
if (a == "request") {
@ -64,16 +67,6 @@ bool Phase::init(std::string *error) {
m_secRulesPhase = 5;
}
}
if (m_phase == -1) {
error->assign("Not able to associate the given rule to any phase: " + \
m_parser_payload);
return false;
}
if (m_phase > modsecurity::Phases::NUMBER_OF_PHASES) {
error->assign("Unknown phase: " + std::to_string(m_phase));
return false;
}
return true;
}

View File

@ -52,7 +52,7 @@ int Driver::addSecMarker(std::string marker) {
int Driver::addSecAction(Rule *rule) {
if (rule->m_phase > modsecurity::Phases::NUMBER_OF_PHASES) {
if (rule->m_phase >= modsecurity::Phases::NUMBER_OF_PHASES) {
m_parserError << "Unknown phase: " << std::to_string(rule->m_phase);
m_parserError << std::endl;
return false;
@ -71,7 +71,7 @@ int Driver::addSecRuleScript(RuleScript *rule) {
int Driver::addSecRule(Rule *rule) {
if (rule->m_phase > modsecurity::Phases::NUMBER_OF_PHASES) {
if (rule->m_phase >= modsecurity::Phases::NUMBER_OF_PHASES) {
m_parserError << "Unknown phase: " << std::to_string(rule->m_phase);
m_parserError << std::endl;
return false;

View File

@ -152,7 +152,7 @@ std::string Rules::getParserError() {
int Rules::evaluate(int phase, Transaction *t) {
if (phase > modsecurity::Phases::NUMBER_OF_PHASES) {
if (phase >= modsecurity::Phases::NUMBER_OF_PHASES) {
return 0;
}
@ -293,7 +293,7 @@ void Rules::debug(int level, const std::string &id,
void Rules::dump() {
std::cout << "Rules: " << std::endl;
for (int i = 0; i <= modsecurity::Phases::NUMBER_OF_PHASES; i++) {
for (int i = 0; i < modsecurity::Phases::NUMBER_OF_PHASES; i++) {
std::vector<Rule *> rules = m_rules[i];
std::cout << "Phase: " << std::to_string(i);
std::cout << " (" << std::to_string(rules.size());