Fix parser error while dealing with operator negation

This patch closes the issue #960
This commit is contained in:
Felipe Zimmerle 2016-03-17 18:06:46 -03:00
parent 47a62b98bb
commit e0926fee37
5 changed files with 13 additions and 13 deletions

View File

@ -109,9 +109,9 @@ Operator *Operator::instantiate(std::string op_string) {
std::string param = "";
if (op.find(" ") != std::string::npos) {
param = op;
param.erase(0, op_string.find(" "));
op.erase(op_string.find(" "),
op_string.length() - op_string.find(" "));
param.erase(0, param.find(" ") + 1);
op.erase(op.find(" "),
op.length() - op.find(" "));
}
for (std::basic_string<char>::iterator p = op.begin();

View File

@ -174,7 +174,7 @@ VAR_FREE_TEXT_SPACE_COMMA [^, \t\"]+
VAR_FREE_TEXT_SPACE [^ \t\"]+
SOMETHING ["]{1}[^@]{1}([^"]|([^\\"]\\\"))*["]{1}
SOMETHING ["]{1}[^@|!]{1}([^"]|([^\\"]\\\"))*["]{1}
CONFIG_DIR_UNICODE_MAP_FILE (?i:SecUnicodeMapFile)

View File

@ -31,7 +31,7 @@
]
},
"expected":{
"debug_log":"Executing operator \"@contains \" with param \"config_example2\" against ARGS."
"debug_log":"Executing operator \"@contains\" with param \"config_example2\" against ARGS."
},
"rules":[
"SecRuleEngine On",
@ -73,7 +73,7 @@
]
},
"expected":{
"debug_log":"Executing operator \"@contains \" with param \"config_example\" against ARGS."
"debug_log":"Executing operator \"@contains\" with param \"config_example\" against ARGS."
},
"rules":[
"SecRuleEngine On",
@ -115,7 +115,7 @@
]
},
"expected":{
"debug_log":"Executing operator \"@contains \" with param \"config_example2\" against ARGS."
"debug_log":"Executing operator \"@contains\" with param \"config_example2\" against ARGS."
},
"rules":[
"SecRuleEngine On",
@ -157,7 +157,7 @@
]
},
"expected":{
"debug_log":"Executing operator \"@contains \" with param \"test\" against ARGS."
"debug_log":"Executing operator \"@contains\" with param \"test\" against ARGS."
},
"rules":[
"SecRuleEngine On",
@ -199,7 +199,7 @@
]
},
"expected":{
"debug_log":"Executing operator \"@contains \" with param \"config_example2\" against ARGS."
"debug_log":"Executing operator \"@contains\" with param \"config_example2\" against ARGS."
},
"rules":[
"SecRuleEngine On",
@ -242,7 +242,7 @@
]
},
"expected":{
"debug_log":"Executing operator \"@contains \" with param \"test\" against ARGS."
"debug_log":"Executing operator \"@contains\" with param \"test\" against ARGS."
},
"rules":[
"SecRuleEngine On",

View File

@ -31,7 +31,7 @@
]
},
"expected":{
"debug_log":"Executing operator \"@pmfromfile \" with param \"https://www.modsecurity.org/modsecurity-regression-test.txt\" against REQUEST_FILENAME"
"debug_log":"Executing operator \"@pmfromfile\" with param \"https://www.modsecurity.org/modsecurity-regression-test.txt\" against REQUEST_FILENAME"
},
"rules":[
"SecRuleEngine On",
@ -88,7 +88,7 @@
]
},
"expected":{
"debug_log":"Executing operator \"@contains \" with param \"somethingelse\" against ARGS."
"debug_log":"Executing operator \"@contains\" with param \"somethingelse\" against ARGS."
},
"rules":[
"SecRuleEngine On",

View File

@ -6,7 +6,7 @@
"title":"Testing action :: SecRule directives should be case insensitive",
"expected":{
"audit_log":"",
"debug_log":"Executing operator \"@contains \" with param \"PHPSESSID\" against REQUEST_HEADERS.",
"debug_log":"Executing operator \"@contains\" with param \"PHPSESSID\" against REQUEST_HEADERS.",
"error_log":""
},
"rules":[