mirror of
https://github.com/falcosecurity/falco.git
synced 2025-09-15 14:28:39 +00:00
new(engine): raise warning instead of error on invalid macro/list name
Signed-off-by: Gianmatteo Palmieri <mail@gian.im>
This commit is contained in:
committed by
poiana
parent
e21a3a5e58
commit
dd59c48034
@@ -73,7 +73,9 @@ static const std::string warning_codes[] = {
|
|||||||
"LOAD_DEPRECATED_ITEM",
|
"LOAD_DEPRECATED_ITEM",
|
||||||
"LOAD_WARNING_EXTENSION",
|
"LOAD_WARNING_EXTENSION",
|
||||||
"LOAD_APPEND_NO_VALUES",
|
"LOAD_APPEND_NO_VALUES",
|
||||||
"LOAD_EXCEPTION_NAME_NOT_UNIQUE"
|
"LOAD_EXCEPTION_NAME_NOT_UNIQUE",
|
||||||
|
"LOAD_INVALID_MACRO_NAME",
|
||||||
|
"LOAD_INVALID_LIST_NAME"
|
||||||
};
|
};
|
||||||
|
|
||||||
const std::string& falco::load_result::warning_code_str(warning_code wc)
|
const std::string& falco::load_result::warning_code_str(warning_code wc)
|
||||||
@@ -92,7 +94,9 @@ static const std::string warning_strings[] = {
|
|||||||
"Used deprecated item",
|
"Used deprecated item",
|
||||||
"Warning in extension item",
|
"Warning in extension item",
|
||||||
"Overriding/appending with no values",
|
"Overriding/appending with no values",
|
||||||
"Multiple exceptions defined with the same name"
|
"Multiple exceptions defined with the same name",
|
||||||
|
"Invalid macro name",
|
||||||
|
"Invalid list name"
|
||||||
};
|
};
|
||||||
|
|
||||||
const std::string& falco::load_result::warning_str(warning_code wc)
|
const std::string& falco::load_result::warning_str(warning_code wc)
|
||||||
@@ -111,7 +115,9 @@ static const std::string warning_descs[] = {
|
|||||||
"A deprecated item is employed by lists, macros, or rules.",
|
"A deprecated item is employed by lists, macros, or rules.",
|
||||||
"An extension item has a warning",
|
"An extension item has a warning",
|
||||||
"A rule exception is overriding/appending with no values",
|
"A rule exception is overriding/appending with no values",
|
||||||
"A rule is defining multiple exceptions with the same name"
|
"A rule is defining multiple exceptions with the same name",
|
||||||
|
"A macro is defined with an invalid name",
|
||||||
|
"A list is defined with an invalid name"
|
||||||
};
|
};
|
||||||
|
|
||||||
const std::string& falco::load_result::warning_desc(warning_code wc)
|
const std::string& falco::load_result::warning_desc(warning_code wc)
|
||||||
|
@@ -59,7 +59,9 @@ public:
|
|||||||
LOAD_DEPRECATED_ITEM,
|
LOAD_DEPRECATED_ITEM,
|
||||||
LOAD_WARNING_EXTENSION,
|
LOAD_WARNING_EXTENSION,
|
||||||
LOAD_APPEND_NO_VALUES,
|
LOAD_APPEND_NO_VALUES,
|
||||||
LOAD_EXCEPTION_NAME_NOT_UNIQUE
|
LOAD_EXCEPTION_NAME_NOT_UNIQUE,
|
||||||
|
LOAD_INVALID_MACRO_NAME,
|
||||||
|
LOAD_INVALID_LIST_NAME
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual ~load_result() = default;
|
virtual ~load_result() = default;
|
||||||
|
@@ -471,7 +471,10 @@ void rule_loader::reader::read_item(
|
|||||||
rule_loader::context ctx(item, rule_loader::context::LIST, name, parent);
|
rule_loader::context ctx(item, rule_loader::context::LIST, name, parent);
|
||||||
|
|
||||||
bool invalid_name = !re2::RE2::FullMatch(name, s_rgx_barestr);
|
bool invalid_name = !re2::RE2::FullMatch(name, s_rgx_barestr);
|
||||||
THROW(invalid_name, ERROR_INVALID_LIST_NAME RGX_BARESTR, ctx);
|
if(invalid_name)
|
||||||
|
{
|
||||||
|
cfg.res->add_warning(falco::load_result::LOAD_INVALID_LIST_NAME, "List has an invalid name. List names must match a regular expression: " RGX_BARESTR, ctx);
|
||||||
|
}
|
||||||
|
|
||||||
rule_loader::list_info v(ctx);
|
rule_loader::list_info v(ctx);
|
||||||
|
|
||||||
@@ -515,7 +518,10 @@ void rule_loader::reader::read_item(
|
|||||||
rule_loader::context ctx(item, rule_loader::context::MACRO, name, parent);
|
rule_loader::context ctx(item, rule_loader::context::MACRO, name, parent);
|
||||||
|
|
||||||
bool invalid_name = !re2::RE2::FullMatch(name, s_rgx_identifier);
|
bool invalid_name = !re2::RE2::FullMatch(name, s_rgx_identifier);
|
||||||
THROW(invalid_name, ERROR_INVALID_MACRO_NAME RGX_IDENTIFIER, ctx);
|
if(invalid_name)
|
||||||
|
{
|
||||||
|
cfg.res->add_warning(falco::load_result::LOAD_INVALID_MACRO_NAME, "Macro has an invalid name. Macro names must match a regular expression: " RGX_IDENTIFIER, ctx);
|
||||||
|
}
|
||||||
|
|
||||||
rule_loader::macro_info v(ctx);
|
rule_loader::macro_info v(ctx);
|
||||||
v.name = name;
|
v.name = name;
|
||||||
|
@@ -21,7 +21,3 @@
|
|||||||
#define ERROR_NO_PREVIOUS_RULE_APPEND "Rule uses 'append' or 'override.<key>: append' but no rule by that name already exists"
|
#define ERROR_NO_PREVIOUS_RULE_APPEND "Rule uses 'append' or 'override.<key>: append' but no rule by that name already exists"
|
||||||
|
|
||||||
#define ERROR_NO_PREVIOUS_RULE_REPLACE "An 'override.<key>: replace' to a rule was requested but no rule by that name already exists"
|
#define ERROR_NO_PREVIOUS_RULE_REPLACE "An 'override.<key>: replace' to a rule was requested but no rule by that name already exists"
|
||||||
|
|
||||||
#define ERROR_INVALID_MACRO_NAME "Macro has an invalid name. Macro names must match a regular expression: "
|
|
||||||
|
|
||||||
#define ERROR_INVALID_LIST_NAME "List has an invalid name. List names must match a regular expression: "
|
|
||||||
|
Reference in New Issue
Block a user