diff --git a/headers/modsecurity/collection/variable.h b/headers/modsecurity/collection/variable.h index 01d6388e..808f004c 100644 --- a/headers/modsecurity/collection/variable.h +++ b/headers/modsecurity/collection/variable.h @@ -18,6 +18,7 @@ #include #include #include +#include #endif #include "modsecurity/variable_origin.h" @@ -35,7 +36,7 @@ namespace collection { class Variable { public: - Variable(const std::string *key) : + explicit Variable(const std::string *key) : m_key(key), m_value(), m_dynamic_value(false), diff --git a/headers/modsecurity/transaction.h b/headers/modsecurity/transaction.h index 1f5f7fb1..06e0183d 100644 --- a/headers/modsecurity/transaction.h +++ b/headers/modsecurity/transaction.h @@ -122,7 +122,8 @@ class AnchoredVariable { } void set(const std::string &a, size_t offset) { - std::unique_ptr origin (new VariableOriginRequest()); + std::unique_ptr origin( + new VariableOriginRequest()); m_offset = offset; m_value.assign(a.c_str(), a.size()); origin->m_offset = offset; @@ -132,7 +133,8 @@ class AnchoredVariable { void append(const std::string &a, size_t offset, bool spaceSeparator = false) { - std::unique_ptr origin (new VariableOriginRequest()); + std::unique_ptr origin( + new VariableOriginRequest()); if (spaceSeparator && !m_value.empty()) { m_value.append(" " + a); } else { @@ -169,7 +171,7 @@ class AnchoredVariable { class TransactionAnchoredVariables { public: - TransactionAnchoredVariables(Transaction *t) + explicit TransactionAnchoredVariables(Transaction *t) : m_variableArgsNames(t, "ARGS_NAMES"), m_variableArgGetNames(t, "ARGS_GET_NAMES"), m_variableArgPostNames(t, "ARGS_POST_NAMES"), @@ -187,12 +189,15 @@ class TransactionAnchoredVariables { m_variableMatchedVarName(t, "MATCHED_VAR_NAME"), m_variableMultipartCrlfLFLines(t, "MULTIPART_CRLF_LF_LINES"), m_variableMultipartDataAfter(t, "MULTIPART_DATA_AFTER"), - m_variableMultipartFileLimitExceeded(t, "MULTIPART_FILE_LIMIT_EXCEEDED"), + m_variableMultipartFileLimitExceeded(t, + "MULTIPART_FILE_LIMIT_EXCEEDED"), m_variableMultipartStrictError(t, "MULTIPART_STRICT_ERROR"), m_variableMultipartHeaderFolding(t, "MULTIPART_HEADER_FOLDING"), m_variableMultipartInvalidQuoting(t, "MULTIPART_INVALID_QUOTING"), - m_variableMultipartInvalidHeaderFolding(t, "MULTIPART_INVALID_HEADER_FOLDING"), - m_variableMultipartUnmatchedBoundary(t, "MULTIPART_UNMATCHED_BOUNDARY"), + m_variableMultipartInvalidHeaderFolding(t, + "MULTIPART_INVALID_HEADER_FOLDING"), + m_variableMultipartUnmatchedBoundary(t, + "MULTIPART_UNMATCHED_BOUNDARY"), m_variableOutboundDataError(t, "OUTBOUND_DATA_ERROR"), m_variablePathInfo(t, "PATH_INFO"), m_variableQueryString(t, "QUERY_STRING"), diff --git a/src/actions/set_var.h b/src/actions/set_var.h index a7ac74e8..5f3c7607 100644 --- a/src/actions/set_var.h +++ b/src/actions/set_var.h @@ -51,16 +51,16 @@ class SetVar : public Action { std::string variableName, std::string predicate) : Action("setvar"), m_operation(operation), - m_predicate(predicate), m_collectionName(""), - m_variableName(variableName) { } + m_variableName(variableName), + m_predicate(predicate) { } SetVar(SetVarOperation operation, std::string variableName) : Action("setvar"), m_operation(operation), - m_predicate(""), m_collectionName(""), - m_variableName(variableName) { } + m_variableName(variableName), + m_predicate("") { } bool evaluate(Rule *rule, Transaction *transaction) override; bool init(std::string *error) override; diff --git a/src/actions/transformations/utf8_to_unicode.cc b/src/actions/transformations/utf8_to_unicode.cc index 56a3f9bc..51e166b4 100644 --- a/src/actions/transformations/utf8_to_unicode.cc +++ b/src/actions/transformations/utf8_to_unicode.cc @@ -65,7 +65,6 @@ char *Utf8ToUnicode::inplace(unsigned char *input, uint64_t input_len, int *changed) { int length = 0; unsigned int count = 0; - unsigned char c; char *data; char *data_orig; unsigned int i, len, j; @@ -88,6 +87,7 @@ char *Utf8ToUnicode::inplace(unsigned char *input, for (i = 0; i < bytes_left;) { int unicode_len = 0; unsigned int d = 0; + unsigned char c; unsigned char *utf = (unsigned char *)&input[i]; c = *utf; @@ -102,8 +102,9 @@ char *Utf8ToUnicode::inplace(unsigned char *input, z[0] = *utf; z[1] = *(utf + 1); *data = utils::string::x2c((unsigned char*) &z); - } else + } else { *data++ = c; + } } } else if ((c & 0xE0) == 0xC0) { /* If first byte begins with binary 110 it is two byte encoding*/ diff --git a/src/macro_expansion.cc b/src/macro_expansion.cc index f02a0cd9..35ea5262 100644 --- a/src/macro_expansion.cc +++ b/src/macro_expansion.cc @@ -69,7 +69,8 @@ std::string MacroExpansion::expand(const std::string& input, if (utils::string::toupper(variable) == "MATCHED_VAR") { variableValue = transaction->m_variableMatchedVar.evaluate(); } else { - variableValue = transaction->m_collections.resolveFirst(variable); + variableValue = transaction->m_collections.resolveFirst( + variable); } } else { std::string col = std::string(variable, 0, collection); diff --git a/src/operators/ip_match_from_file.h b/src/operators/ip_match_from_file.h index 98da7de0..d1329727 100644 --- a/src/operators/ip_match_from_file.h +++ b/src/operators/ip_match_from_file.h @@ -29,7 +29,7 @@ class IpMatchFromFile : public IpMatch { : IpMatch(op, param, negation) { } IpMatchFromFile(std::string op, std::string param) : IpMatch(op, param) { } - IpMatchFromFile(std::string param) + explicit IpMatchFromFile(std::string param) : IpMatch("IpMatchFromFile", param) { } bool init(const std::string& file, std::string *error) override; diff --git a/src/parser/seclang-parser.hh b/src/parser/seclang-parser.hh index 3e5c2f0d..4b0b2324 100644 --- a/src/parser/seclang-parser.hh +++ b/src/parser/seclang-parser.hh @@ -196,7 +196,7 @@ class Driver; #include "src/variables/matched_var.h" #include "src/variables/matched_var_name.h" #include "src/variables/modsec_build.h" -#include "src/variables/multipart_crlf_lf_line.h" +#include "src/variables/multipart_crlf_lf_lines.h" #include "src/variables/multipart_data_after.h" #include "src/variables/multipart_file_limit_exceeded.h" #include "src/variables/multipart_header_folding.h" @@ -226,7 +226,7 @@ class Driver; #include "src/variables/request_protocol.h" #include "src/variables/request_uri.h" #include "src/variables/request_uri_raw.h" -#include "src/variables/resources.h" +#include "src/variables/resource.h" #include "src/variables/response_body.h" #include "src/variables/response_content_length.h" #include "src/variables/response_content_type.h" diff --git a/src/parser/seclang-parser.yy b/src/parser/seclang-parser.yy index 44145fc7..99a2ad42 100644 --- a/src/parser/seclang-parser.yy +++ b/src/parser/seclang-parser.yy @@ -162,7 +162,7 @@ class Driver; #include "src/variables/matched_var.h" #include "src/variables/matched_var_name.h" #include "src/variables/modsec_build.h" -#include "src/variables/multipart_crlf_lf_line.h" +#include "src/variables/multipart_crlf_lf_lines.h" #include "src/variables/multipart_data_after.h" #include "src/variables/multipart_file_limit_exceeded.h" #include "src/variables/multipart_header_folding.h" @@ -192,7 +192,7 @@ class Driver; #include "src/variables/request_protocol.h" #include "src/variables/request_uri.h" #include "src/variables/request_uri_raw.h" -#include "src/variables/resources.h" +#include "src/variables/resource.h" #include "src/variables/response_body.h" #include "src/variables/response_content_length.h" #include "src/variables/response_content_type.h" diff --git a/src/rule.cc b/src/rule.cc index 85d71c90..ab92e8d6 100644 --- a/src/rule.cc +++ b/src/rule.cc @@ -326,7 +326,8 @@ std::list, for (Action *a : trasn->m_rules->m_defaultActions[this->phase]) { if (a->action_kind \ == actions::Action::RunTimeBeforeMatchAttemptKind) { - newValue = std::unique_ptr(new std::string(a->evaluate(*value, trasn))); + newValue = std::unique_ptr( + new std::string(a->evaluate(*value, trasn))); if (multiMatch == true) { if (*newValue != *value) { @@ -354,7 +355,8 @@ std::list, for (Action *a : this->m_actionsRuntimePre) { if (none == 0) { - newValue = std::unique_ptr(new std::string(a->evaluate(*value, trasn))); + newValue = std::unique_ptr( + new std::string(a->evaluate(*value, trasn))); if (multiMatch == true) { if (*value != *newValue) { @@ -388,9 +390,6 @@ std::list, trasn->debug(9, "multiMatch is enabled. " \ + std::to_string(ret.size()) + \ " values to be tested."); - //for (const std::string *a : ret) { - // trasn->debug(9, " - " + *a); - //} } else { ret.push_back(std::make_pair( std::move(value), diff --git a/src/transaction.cc b/src/transaction.cc index 234cde68..5556f8fb 100644 --- a/src/transaction.cc +++ b/src/transaction.cc @@ -215,8 +215,10 @@ int Transaction::processConnection(const char *client, int cPort, m_variableUniqueID.set(m_id, m_variableOffset); m_variableRemoteAddr.set(m_clientIpAddress, m_variableOffset); m_variableServerAddr.set(m_serverIpAddress, m_variableOffset); - m_variableServerPort.set(std::to_string(this->m_serverPort), m_variableOffset); - m_variableRemotePort.set(std::to_string(this->m_clientPort), m_variableOffset); + m_variableServerPort.set(std::to_string(this->m_serverPort), + m_variableOffset); + m_variableRemotePort.set(std::to_string(this->m_clientPort), + m_variableOffset); this->m_rules->evaluate(modsecurity::ConnectionPhase, this); return true; @@ -1025,14 +1027,16 @@ int Transaction::processResponseBody() { auto t = bi.find(m_variableResponseContentType.m_value); if (t == bi.end() && bi.empty() == false) { #ifndef NO_LOGS - debug(5, "Response Content-Type is " + m_variableResponseContentType.m_value + \ - ". It is not marked to be inspected."); + debug(5, "Response Content-Type is " \ + + m_variableResponseContentType.m_value \ + + ". It is not marked to be inspected."); std::string validContetTypes(""); for (std::set::iterator i = bi.begin(); i != bi.end(); i++) { validContetTypes.append(*i + " "); } - debug(8, "Content-Type(s) marked to be inspected: " + validContetTypes); + debug(8, "Content-Type(s) marked to be inspected: " \ + + validContetTypes); #endif return true; } @@ -1041,7 +1045,8 @@ int Transaction::processResponseBody() { } m_variableResponseBody.set(m_responseBody.str(), m_variableOffset); - m_variableResponseContentLength.set(std::to_string(m_responseBody.str().size()), m_variableOffset); + m_variableResponseContentLength.set(std::to_string( + m_responseBody.str().size()), m_variableOffset); this->m_rules->evaluate(modsecurity::ResponseBodyPhase, this); return true; @@ -1074,8 +1079,9 @@ int Transaction::appendResponseBody(const unsigned char *buf, size_t len) { if (t == bi.end() && bi.empty() == false) { #ifndef NO_LOGS debug(4, "Not appending response body. " \ - "Response Content-Type is " + m_variableResponseContentType.m_value + \ - ". It is not marked to be inspected."); + "Response Content-Type is " \ + + m_variableResponseContentType.m_value \ + + ". It is not marked to be inspected."); #endif return true; } diff --git a/src/utils/regex.h b/src/utils/regex.h index 7e28a7a5..d60407dc 100644 --- a/src/utils/regex.h +++ b/src/utils/regex.h @@ -37,10 +37,11 @@ class SMatch { match("") { } size_t size() const { return size_; } std::string str() const { return match; } - std::string match; + int size_; int m_offset; int m_length; + std::string match; }; diff --git a/src/variables/args_combined_size.h b/src/variables/args_combined_size.h index 8730038c..5d9371e4 100644 --- a/src/variables/args_combined_size.h +++ b/src/variables/args_combined_size.h @@ -38,7 +38,6 @@ class ArgsCombinedSize : public Variable { std::vector *l) { transaction->m_variableARGScombinedSize.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/args_get_names.h b/src/variables/args_get_names.h index acacf616..4c41a575 100644 --- a/src/variables/args_get_names.h +++ b/src/variables/args_get_names.h @@ -19,8 +19,8 @@ #include #include -#ifndef SRC_VARIABLES_ARGS_NAMES_GET_H_ -#define SRC_VARIABLES_ARGS_NAMES_GET_H_ +#ifndef SRC_VARIABLES_ARGS_GET_NAMES_H_ +#define SRC_VARIABLES_ARGS_GET_NAMES_H_ #include "src/variables/variable.h" @@ -38,10 +38,9 @@ class ArgsGetNames : public Variable { std::vector *l) { transaction->m_variableArgGetNames.evaluate(l); } - }; } // namespace Variables } // namespace modsecurity -#endif // SRC_VARIABLES_ARGS_NAMES_GET_H_ +#endif // SRC_VARIABLES_ARGS_GET_NAMES_H_ diff --git a/src/variables/args_names.h b/src/variables/args_names.h index de1e5864..5130e15a 100644 --- a/src/variables/args_names.h +++ b/src/variables/args_names.h @@ -33,12 +33,11 @@ class ArgsNames : public Variable { public: ArgsNames() : Variable("ARGS_NAMES") { } - + void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableArgsNames.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/args_post_names.h b/src/variables/args_post_names.h index b57183cc..cb7d803b 100644 --- a/src/variables/args_post_names.h +++ b/src/variables/args_post_names.h @@ -19,8 +19,8 @@ #include #include -#ifndef SRC_VARIABLES_ARGS_NAMES_POST_H_ -#define SRC_VARIABLES_ARGS_NAMES_POST_H_ +#ifndef SRC_VARIABLES_ARGS_POST_NAMES_H_ +#define SRC_VARIABLES_ARGS_POST_NAMES_H_ #include "src/variables/variable.h" @@ -38,10 +38,9 @@ class ArgsPostNames : public Variable { std::vector *l) { transaction->m_variableArgPostNames.evaluate(l); } - }; } // namespace Variables } // namespace modsecurity -#endif // SRC_VARIABLES_ARGS_NAMES_POST_H_ +#endif // SRC_VARIABLES_ARGS_POST_NAMES_H_ diff --git a/src/variables/auth_type.h b/src/variables/auth_type.h index 59b7c057..fa720c55 100644 --- a/src/variables/auth_type.h +++ b/src/variables/auth_type.h @@ -38,7 +38,6 @@ class AuthType : public Variable { std::vector *l) { transaction->m_variableAuthType.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/files_combined_size.h b/src/variables/files_combined_size.h index 3dc40693..571f02d2 100644 --- a/src/variables/files_combined_size.h +++ b/src/variables/files_combined_size.h @@ -38,7 +38,6 @@ class FilesCombinedSize : public Variable { std::vector *l) { transaction->m_variableFilesCombinedSize.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/files_tmp_names.h b/src/variables/files_tmp_names.h index 4d527905..bb51a279 100644 --- a/src/variables/files_tmp_names.h +++ b/src/variables/files_tmp_names.h @@ -38,7 +38,6 @@ class FilesTmpNames : public Variable { std::vector *l) { transaction->m_variableFilesTmpNames.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/full_request.h b/src/variables/full_request.h index 458617da..f2042da3 100644 --- a/src/variables/full_request.h +++ b/src/variables/full_request.h @@ -38,7 +38,6 @@ class FullRequest : public Variable { std::vector *l) { transaction->m_variableFullRequest.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/full_request_length.h b/src/variables/full_request_length.h index 555887f9..e4ae1be9 100644 --- a/src/variables/full_request_length.h +++ b/src/variables/full_request_length.h @@ -38,7 +38,6 @@ class FullRequestLength : public Variable { std::vector *l) { transaction->m_variableFullRequestLength.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/inbound_data_error.h b/src/variables/inbound_data_error.h index 39c118f7..1fe3fd12 100644 --- a/src/variables/inbound_data_error.h +++ b/src/variables/inbound_data_error.h @@ -38,7 +38,6 @@ class InboundDataError : public Variable { std::vector *l) { transaction->m_variableInboundDataError.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/matched_var.h b/src/variables/matched_var.h index cf38bdea..73bdd05b 100644 --- a/src/variables/matched_var.h +++ b/src/variables/matched_var.h @@ -38,7 +38,6 @@ class MatchedVar : public Variable { std::vector *l) { transaction->m_variableMatchedVar.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/matched_var_name.h b/src/variables/matched_var_name.h index 8ff02b40..2d692d17 100644 --- a/src/variables/matched_var_name.h +++ b/src/variables/matched_var_name.h @@ -38,7 +38,6 @@ class MatchedVarName : public Variable { std::vector *l) { transaction->m_variableMatchedVarName.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/multipart_crlf_lf_line.h b/src/variables/multipart_crlf_lf_lines.h similarity index 99% rename from src/variables/multipart_crlf_lf_line.h rename to src/variables/multipart_crlf_lf_lines.h index af442b22..9ca546ca 100644 --- a/src/variables/multipart_crlf_lf_line.h +++ b/src/variables/multipart_crlf_lf_lines.h @@ -38,7 +38,6 @@ class MultipartCrlfLFLines : public Variable { std::vector *l) { transaction->m_variableMultipartCrlfLFLines.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/multipart_data_after.h b/src/variables/multipart_data_after.h index 890e9594..bfa79e77 100644 --- a/src/variables/multipart_data_after.h +++ b/src/variables/multipart_data_after.h @@ -38,7 +38,6 @@ class MultipartDateAfter : public Variable { std::vector *l) { transaction->m_variableMultipartDataAfter.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/multipart_file_limit_exceeded.h b/src/variables/multipart_file_limit_exceeded.h index b742d989..750a762d 100644 --- a/src/variables/multipart_file_limit_exceeded.h +++ b/src/variables/multipart_file_limit_exceeded.h @@ -38,7 +38,6 @@ class MultipartFileLimitExceeded : public Variable { std::vector *l) { transaction->m_variableMultipartFileLimitExceeded.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/multipart_header_folding.h b/src/variables/multipart_header_folding.h index 095e3cf7..d863bccd 100644 --- a/src/variables/multipart_header_folding.h +++ b/src/variables/multipart_header_folding.h @@ -38,7 +38,6 @@ class MultipartHeaderFolding : public Variable { std::vector *l) { transaction->m_variableMultipartHeaderFolding.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/multipart_invalid_header_folding.h b/src/variables/multipart_invalid_header_folding.h index 2f9bdeb3..97ef7f49 100644 --- a/src/variables/multipart_invalid_header_folding.h +++ b/src/variables/multipart_invalid_header_folding.h @@ -38,7 +38,6 @@ class MultipartInvalidHeaderFolding : public Variable { std::vector *l) { transaction->m_variableMultipartInvalidHeaderFolding.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/multipart_invalid_quoting.h b/src/variables/multipart_invalid_quoting.h index ff04b8e2..3483ef4c 100644 --- a/src/variables/multipart_invalid_quoting.h +++ b/src/variables/multipart_invalid_quoting.h @@ -33,12 +33,10 @@ class MultipartInvalidQuoting : public Variable { public: MultipartInvalidQuoting() : Variable("MULTIPART_INVALID_QUOTING") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableMultipartInvalidQuoting.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/multipart_strict_error.h b/src/variables/multipart_strict_error.h index d1ae2c5e..0373d516 100644 --- a/src/variables/multipart_strict_error.h +++ b/src/variables/multipart_strict_error.h @@ -38,7 +38,6 @@ class MultipartStrictError : public Variable { std::vector *l) { transaction->m_variableMultipartStrictError.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/multipart_unmatched_boundary.h b/src/variables/multipart_unmatched_boundary.h index 2a442188..2cdeb6f5 100644 --- a/src/variables/multipart_unmatched_boundary.h +++ b/src/variables/multipart_unmatched_boundary.h @@ -38,10 +38,9 @@ class MultipartUnmatchedBoundary : public Variable { std::vector *l) { transaction->m_variableMultipartUnmatchedBoundary.evaluate(l); } - }; } // namespace Variables } // namespace modsecurity -#endif // SRC_VARIABLES_ARGS_NAMES_H_ +#endif // SRC_VARIABLES_MULTIPART_UNMATCHED_BOUNDARY_H_ diff --git a/src/variables/outbound_data_error.h b/src/variables/outbound_data_error.h index 15188b05..03c21aed 100644 --- a/src/variables/outbound_data_error.h +++ b/src/variables/outbound_data_error.h @@ -38,7 +38,6 @@ class OutboundDataError : public Variable { std::vector *l) { transaction->m_variableOutboundDataError.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/path_info.h b/src/variables/path_info.h index fc055265..a1a660c5 100644 --- a/src/variables/path_info.h +++ b/src/variables/path_info.h @@ -38,7 +38,6 @@ class PathInfo : public Variable { std::vector *l) { transaction->m_variablePathInfo.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/query_string.h b/src/variables/query_string.h index b80a2674..33086e06 100644 --- a/src/variables/query_string.h +++ b/src/variables/query_string.h @@ -38,7 +38,6 @@ class QueryString : public Variable { std::vector *l) { transaction->m_variableQueryString.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/remote_addr.h b/src/variables/remote_addr.h index 20cc5f98..190313f5 100644 --- a/src/variables/remote_addr.h +++ b/src/variables/remote_addr.h @@ -38,7 +38,6 @@ class RemoteAddr : public Variable { std::vector *l) { transaction->m_variableRemoteAddr.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/remote_host.h b/src/variables/remote_host.h index 59de8b1b..2edd4065 100644 --- a/src/variables/remote_host.h +++ b/src/variables/remote_host.h @@ -38,7 +38,6 @@ class RemoteHost : public Variable { std::vector *l) { transaction->m_variableRemoteHost.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/remote_port.h b/src/variables/remote_port.h index f13bda1e..0791889b 100644 --- a/src/variables/remote_port.h +++ b/src/variables/remote_port.h @@ -38,7 +38,6 @@ class RemotePort : public Variable { std::vector *l) { transaction->m_variableRemotePort.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/reqbody_error.h b/src/variables/reqbody_error.h index df782094..15ee250b 100644 --- a/src/variables/reqbody_error.h +++ b/src/variables/reqbody_error.h @@ -38,7 +38,6 @@ class ReqbodyError : public Variable { std::vector *l) { transaction->m_variableReqbodyError.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/reqbody_error_msg.h b/src/variables/reqbody_error_msg.h index 36915d71..e06a17f4 100644 --- a/src/variables/reqbody_error_msg.h +++ b/src/variables/reqbody_error_msg.h @@ -33,12 +33,10 @@ class ReqbodyErrorMsg : public Variable { public: ReqbodyErrorMsg() : Variable("REQBODY_ERROR_MSG") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableReqbodyErrorMsg.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/reqbody_processor.h b/src/variables/reqbody_processor.h index 87b9c0e1..2470b8e2 100644 --- a/src/variables/reqbody_processor.h +++ b/src/variables/reqbody_processor.h @@ -33,12 +33,10 @@ class ReqbodyProcessor : public Variable { public: ReqbodyProcessor() : Variable("REQBODY_PROCESSOR") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableReqbodyProcessor.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/reqbody_processor_error.h b/src/variables/reqbody_processor_error.h index d6a9cd6c..7a4819e2 100644 --- a/src/variables/reqbody_processor_error.h +++ b/src/variables/reqbody_processor_error.h @@ -38,7 +38,6 @@ class ReqbodyProcessorError : public Variable { std::vector *l) { transaction->m_variableReqbodyProcessorError.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/reqbody_processor_error_msg.h b/src/variables/reqbody_processor_error_msg.h index 5132f4ff..77df065c 100644 --- a/src/variables/reqbody_processor_error_msg.h +++ b/src/variables/reqbody_processor_error_msg.h @@ -19,8 +19,8 @@ #include #include -#ifndef SRC_VARIABLES_PROCESSOR_ERROR_MSG_H_ -#define SRC_VARIABLES_PROCESSOR_ERROR_MSG_H_ +#ifndef SRC_VARIABLES_REQBODY_PROCESSOR_ERROR_MSG_H_ +#define SRC_VARIABLES_REQBODY_PROCESSOR_ERROR_MSG_H_ #include "src/variables/variable.h" @@ -38,10 +38,9 @@ class ReqbodyProcessorErrorMsg : public Variable { std::vector *l) { transaction->m_variableReqbodyProcessorErrorMsg.evaluate(l); } - }; } // namespace Variables } // namespace modsecurity -#endif // SRC_VARIABLES_PROCESSOR_ERROR_MSG_H_ +#endif // SRC_VARIABLES_REQBODY_PROCESSOR_ERROR_MSG_H_ diff --git a/src/variables/request_base_name.h b/src/variables/request_base_name.h index 87230151..9d777499 100644 --- a/src/variables/request_base_name.h +++ b/src/variables/request_base_name.h @@ -19,8 +19,8 @@ #include #include -#ifndef SRC_VARIABLES_REQUEST_BASENAME_H_ -#define SRC_VARIABLES_REQUEST_BASENAME_H_ +#ifndef SRC_VARIABLES_REQUEST_BASE_NAME_H_ +#define SRC_VARIABLES_REQUEST_BASE_NAME_H_ #include "src/variables/variable.h" @@ -38,10 +38,9 @@ class RequestBasename : public Variable { std::vector *l) { transaction->m_variableRequestBasename.evaluate(l); } - }; } // namespace Variables } // namespace modsecurity -#endif // SRC_VARIABLES_REQUEST_BASENAME_H_ +#endif // SRC_VARIABLES_REQUEST_BASE_NAME_H_ diff --git a/src/variables/request_body.h b/src/variables/request_body.h index 293284c3..e4329318 100644 --- a/src/variables/request_body.h +++ b/src/variables/request_body.h @@ -33,12 +33,10 @@ class RequestBody : public Variable { public: RequestBody() : Variable("REQUEST_BODY") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableRequestBody.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/request_body_length.h b/src/variables/request_body_length.h index 6fb26920..7513e2c9 100644 --- a/src/variables/request_body_length.h +++ b/src/variables/request_body_length.h @@ -33,12 +33,10 @@ class RequestBodyLength : public Variable { public: RequestBodyLength() : Variable("REQUEST_BODY_LENGTH") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableRequestBodyLength.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/request_file_name.h b/src/variables/request_file_name.h index 475442c2..00a5dc10 100644 --- a/src/variables/request_file_name.h +++ b/src/variables/request_file_name.h @@ -19,8 +19,8 @@ #include #include -#ifndef SRC_VARIABLES_REQUEST_FILENAME_H_ -#define SRC_VARIABLES_REQUEST_FILENAME_H_ +#ifndef SRC_VARIABLES_REQUEST_FILE_NAME_H_ +#define SRC_VARIABLES_REQUEST_FILE_NAME_H_ #include "src/variables/variable.h" @@ -33,15 +33,13 @@ class RequestFilename : public Variable { public: RequestFilename() : Variable("REQUEST_FILENAME") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableRequestFilename.evaluate(l); } - }; } // namespace Variables } // namespace modsecurity -#endif // SRC_VARIABLES_REQUEST_FILENAME_H_ +#endif // SRC_VARIABLES_REQUEST_FILE_NAME_H_ diff --git a/src/variables/request_headers_names.h b/src/variables/request_headers_names.h index 931c5bb2..d8dac632 100644 --- a/src/variables/request_headers_names.h +++ b/src/variables/request_headers_names.h @@ -33,15 +33,13 @@ class RequestHeadersNames : public Variable { public: RequestHeadersNames() : Variable("REQUEST_HEADERS_NAMES") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableRequestHeadersNames.evaluate(l); } - }; } // namespace Variables } // namespace modsecurity -#endif // SRC_VARIABLES_TIMEARG_NAMES_H_ +#endif // SRC_VARIABLES_REQUEST_HEADERS_NAMES_H_ diff --git a/src/variables/request_line.h b/src/variables/request_line.h index 7379ac40..5706d4f5 100644 --- a/src/variables/request_line.h +++ b/src/variables/request_line.h @@ -33,12 +33,10 @@ class RequestLine : public Variable { public: RequestLine() : Variable("REQUEST_LINE") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableRequestLine.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/request_method.h b/src/variables/request_method.h index 15373e60..b0c5b5fd 100644 --- a/src/variables/request_method.h +++ b/src/variables/request_method.h @@ -33,12 +33,10 @@ class RequestMethod : public Variable { public: RequestMethod() : Variable("REQUEST_METHOD") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableRequestMethod.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/request_protocol.h b/src/variables/request_protocol.h index 6486a2b7..14392d02 100644 --- a/src/variables/request_protocol.h +++ b/src/variables/request_protocol.h @@ -33,12 +33,10 @@ class RequestProtocol : public Variable { public: RequestProtocol() : Variable("REQUEST_PROTOCOL") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableRequestProtocol.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/request_uri.h b/src/variables/request_uri.h index 6b2ecb33..b4139fd8 100644 --- a/src/variables/request_uri.h +++ b/src/variables/request_uri.h @@ -33,12 +33,10 @@ class RequestURI : public Variable { public: RequestURI() : Variable("REQUEST_URI") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableRequestURI.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/request_uri_raw.h b/src/variables/request_uri_raw.h index 85625879..f2554f34 100644 --- a/src/variables/request_uri_raw.h +++ b/src/variables/request_uri_raw.h @@ -33,12 +33,10 @@ class RequestURIRaw : public Variable { public: RequestURIRaw() : Variable("REQUEST_URI_RAW") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableRequestURIRaw.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/resources.h b/src/variables/resource.h similarity index 99% rename from src/variables/resources.h rename to src/variables/resource.h index fe9a52bc..b535ad78 100644 --- a/src/variables/resources.h +++ b/src/variables/resource.h @@ -38,7 +38,6 @@ class Resource : public Variable { std::vector *l) { transaction->m_variableResource.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/response_body.h b/src/variables/response_body.h index 7d1e55c3..f5658e5f 100644 --- a/src/variables/response_body.h +++ b/src/variables/response_body.h @@ -33,12 +33,10 @@ class ResponseBody : public Variable { public: ResponseBody() : Variable("RESPONSE_BODY") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableResponseBody.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/response_content_length.h b/src/variables/response_content_length.h index 41a1eb1d..7203459a 100644 --- a/src/variables/response_content_length.h +++ b/src/variables/response_content_length.h @@ -33,12 +33,10 @@ class ResponseContentLength : public Variable { public: ResponseContentLength() : Variable("RESPONSE_CONTENT_LENGTH") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableResponseContentLength.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/response_content_type.h b/src/variables/response_content_type.h index 866dda08..8fc24ce2 100644 --- a/src/variables/response_content_type.h +++ b/src/variables/response_content_type.h @@ -33,7 +33,6 @@ class ResponseContentType : public Variable { public: ResponseContentType() : Variable("RESPONSE_CONTENT_TYPE") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableResponseContentType.evaluate(l); diff --git a/src/variables/response_headers_names.h b/src/variables/response_headers_names.h index 82fb8eee..6c2c043f 100644 --- a/src/variables/response_headers_names.h +++ b/src/variables/response_headers_names.h @@ -19,8 +19,8 @@ #include #include -#ifndef SRC_VARIABLES_ARG_NAMES_H_ -#define SRC_VARIABLES_ARG_NAMES_H_ +#ifndef SRC_VARIABLES_RESPONSE_HEADERS_NAMES_H_ +#define SRC_VARIABLES_RESPONSE_HEADERS_NAMES_H_ #include "src/variables/variable.h" @@ -43,4 +43,4 @@ class ResponseHeadersNames : public Variable { } // namespace Variables } // namespace modsecurity -#endif // SRC_VARIABLES_TIMEARG_NAMES_H_ +#endif // SRC_VARIABLES_RESPONSE_HEADERS_NAMES_H_ diff --git a/src/variables/response_protocol.h b/src/variables/response_protocol.h index f8a5e739..4aa218ed 100644 --- a/src/variables/response_protocol.h +++ b/src/variables/response_protocol.h @@ -33,12 +33,10 @@ class ResponseProtocol : public Variable { public: ResponseProtocol() : Variable("RESPONSE_PROTOCOL") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableResponseProtocol.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/response_status.h b/src/variables/response_status.h index 4c0e9a3c..4bbab111 100644 --- a/src/variables/response_status.h +++ b/src/variables/response_status.h @@ -33,12 +33,10 @@ class ResponseStatus : public Variable { public: ResponseStatus() : Variable("RESPONSE_STATUS") { } - void evaluateInternal(Transaction *transaction, std::vector *l) { transaction->m_variableResponseStatus.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/server_addr.h b/src/variables/server_addr.h index 9270146c..7cb7bf41 100644 --- a/src/variables/server_addr.h +++ b/src/variables/server_addr.h @@ -38,7 +38,6 @@ class ServerAddr : public Variable { std::vector *l) { transaction->m_variableServerAddr.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/server_name.h b/src/variables/server_name.h index 072ef299..9368e86a 100644 --- a/src/variables/server_name.h +++ b/src/variables/server_name.h @@ -38,7 +38,6 @@ class ServerName : public Variable { std::vector *l) { transaction->m_variableServerName.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/server_port.h b/src/variables/server_port.h index 2c9d333d..3ba966da 100644 --- a/src/variables/server_port.h +++ b/src/variables/server_port.h @@ -38,7 +38,6 @@ class ServerPort : public Variable { std::vector *l) { transaction->m_variableServerPort.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/session_id.h b/src/variables/session_id.h index cc54f0bf..6b5f1aaa 100644 --- a/src/variables/session_id.h +++ b/src/variables/session_id.h @@ -38,7 +38,6 @@ class SessionID : public Variable { std::vector *l) { transaction->m_variableSessionID.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/unique_id.h b/src/variables/unique_id.h index eb1f3f87..f083f315 100644 --- a/src/variables/unique_id.h +++ b/src/variables/unique_id.h @@ -38,7 +38,6 @@ class UniqueID : public Variable { std::vector *l) { transaction->m_variableUniqueID.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/url_encoded_error.h b/src/variables/url_encoded_error.h index 55ee8ab5..46353a07 100644 --- a/src/variables/url_encoded_error.h +++ b/src/variables/url_encoded_error.h @@ -38,7 +38,6 @@ class UrlEncodedError : public Variable { std::vector *l) { transaction->m_variableUrlEncodedError.evaluate(l); } - }; } // namespace Variables diff --git a/src/variables/user_id.h b/src/variables/user_id.h index 00fc7676..d40920d0 100644 --- a/src/variables/user_id.h +++ b/src/variables/user_id.h @@ -38,7 +38,6 @@ class UserID : public Variable { std::vector *l) { transaction->m_variableUserID.evaluate(l); } - }; } // namespace Variables diff --git a/test/coding_style_suppressions.txt b/test/coding_style_suppressions.txt index 559d47eb..6ae348a8 100644 --- a/test/coding_style_suppressions.txt +++ b/test/coding_style_suppressions.txt @@ -5,7 +5,9 @@ ./src/collection/backend/in_memory-per_process.h:61 ./src/config.h:0 ./src/parser/driver.h:39 +./src/seclang-parser.cc ./src/parser/seclang-parser.cc +./src/seclang-scanner.cc ./src/parser/seclang-scanner.cc ./src/request_body_processor/multipart.h:36 ./src/utils/acmp.cc @@ -18,4 +20,5 @@ ./test/benchmark/owasp-modsecurity-crs/ ./test/fuzzer ./test/libfuzzer +./src/parser/seclang-parser.tab.cc Total errors found diff --git a/test/common/modsecurity_test.h b/test/common/modsecurity_test.h index dffbb9a3..67c5be63 100644 --- a/test/common/modsecurity_test.h +++ b/test/common/modsecurity_test.h @@ -46,8 +46,8 @@ template class ModSecurityTest : bool verbose = false; bool color = false; int m_test_number; - bool m_count_all; bool m_automake_output; + bool m_count_all; }; } // namespace modsecurity_test diff --git a/test/cppcheck_suppressions.txt b/test/cppcheck_suppressions.txt index 6c8deceb..5596b3dc 100644 --- a/test/cppcheck_suppressions.txt +++ b/test/cppcheck_suppressions.txt @@ -39,4 +39,8 @@ unreadVariable:test/regression/regression.cc:380 shiftNegative:src/utils/msc_tree.cc nullPointerRedundantCheck:src/utils/msc_tree.cc:654 *:test/benchmark/owasp-v3/util/av-scanning/runAV/common.c +*:seclang-parser.tab.hh +*:seclang-scanner.ll +*:seclang-scanner.cc + functionStatic:*