Adds support to setenv action

Issue #1044
This commit is contained in:
Felipe Zimmerle
2018-09-25 10:18:43 -03:00
parent 4dd2812757
commit bc3d3f1915
12 changed files with 5137 additions and 5434 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -85,6 +85,7 @@ class Driver;
#include "src/actions/phase.h"
#include "src/actions/rev.h"
#include "src/actions/rule_id.h"
#include "src/actions/set_env.h"
#include "src/actions/set_rsc.h"
#include "src/actions/set_sid.h"
#include "src/actions/set_uid.h"
@@ -380,7 +381,7 @@ using modsecurity::operators::Operator;
#line 384 "seclang-parser.hh" // lalr1.cc:379
#line 385 "seclang-parser.hh" // lalr1.cc:379
# include <cassert>
# include <cstdlib> // std::abort
@@ -457,7 +458,7 @@ using modsecurity::operators::Operator;
namespace yy {
#line 461 "seclang-parser.hh" // lalr1.cc:379
#line 462 "seclang-parser.hh" // lalr1.cc:379
@@ -2875,7 +2876,7 @@ namespace yy {
enum
{
yyeof_ = 0,
yylast_ = 3320, ///< Last index in yytable_.
yylast_ = 3321, ///< Last index in yytable_.
yynnts_ = 16, ///< Number of nonterminal symbols.
yyfinal_ = 336, ///< Termination state number.
yyterror_ = 1,
@@ -6139,7 +6140,7 @@ namespace yy {
} // yy
#line 6143 "seclang-parser.hh" // lalr1.cc:379
#line 6144 "seclang-parser.hh" // lalr1.cc:379

View File

@@ -51,6 +51,7 @@ class Driver;
#include "src/actions/phase.h"
#include "src/actions/rev.h"
#include "src/actions/rule_id.h"
#include "src/actions/set_env.h"
#include "src/actions/set_rsc.h"
#include "src/actions/set_sid.h"
#include "src/actions/set_uid.h"
@@ -2749,9 +2750,9 @@ act:
{
ACTION_NOT_SUPPORTED("SanitiseResponseHeader", @0);
}
| ACTION_SETENV
| ACTION_SETENV run_time_string
{
ACTION_NOT_SUPPORTED("SetEnv", @0);
ACTION_CONTAINER($$, new actions::SetENV(std::move($2)));
}
| ACTION_SETRSC run_time_string
{

File diff suppressed because it is too large Load Diff

View File

@@ -552,10 +552,7 @@ EQUALS_MINUS (?i:=\-)
{ACTION_REDIRECT}: { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_REDIRECT(yytext, *driver.loc.back()); }
{ACTION_REV}:'{FREE_TEXT_QUOTE_COMMA}' { return p::make_ACTION_REV(yytext, *driver.loc.back()); }
{ACTION_REV}:{FREE_TEXT_QUOTE_COMMA} { return p::make_ACTION_REV(yytext, *driver.loc.back()); }
{ACTION_SETENV}:'{VAR_FREE_TEXT_QUOTE}={VAR_FREE_TEXT_QUOTE}' { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); }
{ACTION_SETENV}:'{VAR_FREE_TEXT_QUOTE}' { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); }
{ACTION_SETENV}:{VAR_FREE_TEXT_SPACE_COMMA} { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); }
{ACTION_SETENV}:{VAR_FREE_TEXT_SPACE}={VAR_FREE_TEXT_SPACE_COMMA} { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); }
{ACTION_SETENV}: { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_SETENV(yytext, *driver.loc.back()); }
{ACTION_SETSID}: { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_SETSID(yytext, *driver.loc.back()); }
{ACTION_SETUID}: { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_SETUID(yytext, *driver.loc.back()); }