From 9aefce290043503f697570faf648464010b2558f Mon Sep 17 00:00:00 2001 From: "cheng.hm" Date: Wed, 1 Sep 2021 00:17:36 -0700 Subject: [PATCH] fix [ \t]+ processing for include xxxx.conf --- src/parser/seclang-scanner.ll | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/parser/seclang-scanner.ll b/src/parser/seclang-scanner.ll index 9686027ba7..a6793346be 100755 --- a/src/parser/seclang-scanner.ll +++ b/src/parser/seclang-scanner.ll @@ -1237,7 +1237,8 @@ EQUALS_MINUS (?i:=\-) {CONFIG_INCLUDE}[ \t]+{CONFIG_VALUE_PATH} { std::string err; - const char *file = strchr(yytext, ' ') + 1; + const char *tmpStr = yytext + strlen("include"); + const char *file = tmpStr + strspn ( tmpStr, " \t"); std::string fi = modsecurity::utils::find_resource(file, *driver.loc.back()->end.filename, &err); if (fi.empty() == true) { BEGIN(INITIAL); @@ -1264,9 +1265,9 @@ EQUALS_MINUS (?i:=\-) {CONFIG_INCLUDE}[ \t]+["]{CONFIG_VALUE_PATH}["] { std::string err; - const char *file = strchr(yytext, ' ') + 1; - char *f = strdup(file + 1); - f[strlen(f)-1] = '\0'; + const char *tmpStr = yytext + strlen("include"); + const char *file = tmpStr + strspn ( tmpStr, " \t"); + char *f = strdup(file); std::string fi = modsecurity::utils::find_resource(f, *driver.loc.back()->end.filename, &err); if (fi.empty() == true) { BEGIN(INITIAL);