Fix STATUS var parsing and accept STATUS_LINE var for v2 backward compatibility

This commit is contained in:
Victor Hora 2018-04-10 20:03:24 -04:00 committed by Felipe Zimmerle
parent a806f26be1
commit 2037a08b34
No known key found for this signature in database
GPG Key ID: E6DFB08CE8B11277
5 changed files with 7345 additions and 7413 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -452,6 +452,7 @@ using modsecurity::operators::Operator;
VARIABLE_STATUS "VARIABLE_STATUS" VARIABLE_STATUS "VARIABLE_STATUS"
VARIABLE_STATUS_LINE "VARIABLE_STATUS_LINE"
VARIABLE_IP "VARIABLE_IP" VARIABLE_IP "VARIABLE_IP"
VARIABLE_GLOBAL "VARIABLE_GLOBAL" VARIABLE_GLOBAL "VARIABLE_GLOBAL"
VARIABLE_TX "VARIABLE_TX" VARIABLE_TX "VARIABLE_TX"
@ -2391,6 +2392,10 @@ var:
{ {
VARIABLE_CONTAINER($$, new Variables::Status()); VARIABLE_CONTAINER($$, new Variables::Status());
} }
| VARIABLE_STATUS_LINE
{
VARIABLE_CONTAINER($$, new Variables::Status());
}
| VARIABLE_WEB_APP_ID | VARIABLE_WEB_APP_ID
{ {
VARIABLE_CONTAINER($$, new Variables::WebAppId()); VARIABLE_CONTAINER($$, new Variables::WebAppId());

File diff suppressed because it is too large Load Diff

View File

@ -252,7 +252,8 @@ VARIABLE_RULE (?i:RULE)
VARIABLE_SESSION (?i:(SESSION)) VARIABLE_SESSION (?i:(SESSION))
VARIABLE_IP (?i:(IP)) VARIABLE_IP (?i:(IP))
VARIABLE_USER (?i:(USER)) VARIABLE_USER (?i:(USER))
VARIABLE_STATUS (?i:(STATUS[^:])) VARIABLE_STATUS (?i:(STATUS))
VARIABLE_STATUS_LINE (?i:(STATUS_LINE))
VARIABLE_TX (?i:TX) VARIABLE_TX (?i:TX)
VARIABLE_WEB_APP_ID (?i:WEBAPPID) VARIABLE_WEB_APP_ID (?i:WEBAPPID)
RUN_TIME_VAR_BLD (?i:MODSEC_BUILD) RUN_TIME_VAR_BLD (?i:MODSEC_BUILD)
@ -1005,6 +1006,7 @@ EQUALS_MINUS (?i:=\-)
{VARIABLE_RESOURCE} { return p::make_VARIABLE_RESOURCE(*driver.loc.back()); } {VARIABLE_RESOURCE} { return p::make_VARIABLE_RESOURCE(*driver.loc.back()); }
{VARIABLE_SESSION} { return p::make_VARIABLE_SESSION(*driver.loc.back()); } {VARIABLE_SESSION} { return p::make_VARIABLE_SESSION(*driver.loc.back()); }
{VARIABLE_STATUS} { return p::make_VARIABLE_STATUS(*driver.loc.back()); } {VARIABLE_STATUS} { return p::make_VARIABLE_STATUS(*driver.loc.back()); }
{VARIABLE_STATUS_LINE} { return p::make_VARIABLE_STATUS_LINE(*driver.loc.back()); }
{VARIABLE_TX} { return p::make_VARIABLE_TX(*driver.loc.back()); } {VARIABLE_TX} { return p::make_VARIABLE_TX(*driver.loc.back()); }
{VARIABLE_USER} { return p::make_VARIABLE_USER(*driver.loc.back()); } {VARIABLE_USER} { return p::make_VARIABLE_USER(*driver.loc.back()); }
} }