From 0c0a9b30832c24c9679daaf2a9bbffd79d820e15 Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Thu, 23 Jun 2016 23:12:40 -0300 Subject: [PATCH] Accepts component signature between brackets --- src/parser/seclang-parser.yy | 3 ++- src/parser/seclang-scanner.ll | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/parser/seclang-parser.yy b/src/parser/seclang-parser.yy index e925a3dc..858d9a4d 100644 --- a/src/parser/seclang-parser.yy +++ b/src/parser/seclang-parser.yy @@ -91,6 +91,7 @@ using modsecurity::actions::transformations::Transformation; using modsecurity::operators::Operator; using modsecurity::Rule; using modsecurity::Utils::GeoLookup; +using modsecurity::removeBracketsIfNeeded; using modsecurity::Variables::Variations::Count; using modsecurity::Variables::Variations::Exclusion; @@ -565,7 +566,7 @@ expression: } | CONFIG_DIR_SEC_MARKER { - driver.addSecMarker($1); + driver.addSecMarker(removeBracketsIfNeeded($1)); } | CONFIG_DIR_RULE_ENG CONFIG_VALUE_OFF { diff --git a/src/parser/seclang-scanner.ll b/src/parser/seclang-scanner.ll index f4a28a12..b3be498b 100755 --- a/src/parser/seclang-scanner.ll +++ b/src/parser/seclang-scanner.ll @@ -307,7 +307,7 @@ CONFIG_DIR_UNICODE_MAP_FILE (?i:SecUnicodeMapFile) {CONFIG_DIR_RES_BODY_LIMIT}[ ]{CONFIG_VALUE_NUMBER} { return yy::seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } {CONFIG_DIR_RES_BODY_LIMIT_ACTION} { return yy::seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT_ACTION(yytext, *driver.loc.back()); } -{CONFIG_COMPONENT_SIG}[ ]["]{FREE_TEXT}["] { return yy::seclang_parser::make_CONFIG_COMPONENT_SIG(strchr(yytext, ' ') + 2, *driver.loc.back()); } +{CONFIG_COMPONENT_SIG}[ \t]+["]{FREE_TEXT}["] { return yy::seclang_parser::make_CONFIG_COMPONENT_SIG(strchr(yytext, ' ') + 2, *driver.loc.back()); } %{ /* Other configurations */ %} {CONFIG_XML_EXTERNAL_ENTITY} { return yy::seclang_parser::make_CONFIG_XML_EXTERNAL_ENTITY(yytext, *driver.loc.back()); } @@ -335,7 +335,8 @@ CONFIG_DIR_UNICODE_MAP_FILE (?i:SecUnicodeMapFile) {CONFIG_DIR_SEC_ACTION} { return yy::seclang_parser::make_CONFIG_DIR_SEC_ACTION(yytext, *driver.loc.back()); } {CONFIG_DIR_SEC_DEFAULT_ACTION} { return yy::seclang_parser::make_CONFIG_DIR_SEC_DEFAULT_ACTION(yytext, *driver.loc.back()); } -{CONFIG_DIR_SEC_MARKER}[ ]{NEW_LINE_FREE_TEXT} { return yy::seclang_parser::make_CONFIG_DIR_SEC_MARKER(strchr(yytext, ' ') + 1, *driver.loc.back()); } +{CONFIG_DIR_SEC_MARKER}[ \t]+{NEW_LINE_FREE_TEXT} { return yy::seclang_parser::make_CONFIG_DIR_SEC_MARKER(strchr(yytext, ' ') + 1, *driver.loc.back()); } +{CONFIG_DIR_SEC_MARKER}[ \t]+["]{NEW_LINE_FREE_TEXT}["] { return yy::seclang_parser::make_CONFIG_DIR_SEC_MARKER(strchr(yytext, ' ') + 1, *driver.loc.back()); } { ["]{OPERATOR}[ ]{FREE_TEXT}["] { BEGIN(INITIAL); return yy::seclang_parser::make_OPERATOR(yytext, *driver.loc.back()); }