File tree Expand file tree Collapse file tree 1 file changed +13
-2
lines changed Expand file tree Collapse file tree 1 file changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -152,6 +152,8 @@ std::string Rules::getParserError() {
152152
153153
154154int Rules::evaluate (int phase, Transaction *transaction) {
155+ bool remove_rule;
156+
155157 if (phase > modsecurity::Phases::NUMBER_OF_PHASES) {
156158 return 0 ;
157159 }
@@ -178,6 +180,7 @@ int Rules::evaluate(int phase, Transaction *transaction) {
178180 }
179181
180182 for (int i = 0 ; i < rules.size (); i++) {
183+ remove_rule = false ;
181184 Rule *rule = rules[i];
182185 if (transaction->m_marker .empty () == false ) {
183186 debug (9 , " Skipped rule id '" + std::to_string (rule->m_ruleId ) \
@@ -209,9 +212,13 @@ int Rules::evaluate(int phase, Transaction *transaction) {
209212 debug (9 , " Skipped rule id '" \
210213 + std::to_string (rule->m_ruleId ) \
211214 + " '. Removed by a SecRuleRemoveByMsg directive." );
212- return 1 ;
215+ remove_rule = true ;
216+ break ;
213217 }
214218 }
219+ if (remove_rule) {
220+ continue ;
221+ }
215222 }
216223
217224 if (m_exceptions.m_remove_rule_by_tag .empty () == false ) {
@@ -220,9 +227,13 @@ int Rules::evaluate(int phase, Transaction *transaction) {
220227 debug (9 , " Skipped rule id '" \
221228 + std::to_string (rule->m_ruleId ) \
222229 + " '. Removed by a SecRuleRemoveByTag directive." );
223- return 1 ;
230+ remove_rule = true ;
231+ break ;
224232 }
225233 }
234+ if (remove_rule) {
235+ continue ;
236+ }
226237 }
227238
228239 rule->evaluate (transaction, NULL );
You can’t perform that action at this time.
0 commit comments