diff --git a/src/actions/transformations/css_decode.cc b/src/actions/transformations/css_decode.cc index c5de63f73..41da9390e 100644 --- a/src/actions/transformations/css_decode.cc +++ b/src/actions/transformations/css_decode.cc @@ -17,6 +17,7 @@ #include "src/utils/string.h" +using namespace modsecurity::utils::string; namespace modsecurity::actions::transformations { diff --git a/src/actions/transformations/escape_seq_decode.cc b/src/actions/transformations/escape_seq_decode.cc index 2cc413e71..94df2269d 100644 --- a/src/actions/transformations/escape_seq_decode.cc +++ b/src/actions/transformations/escape_seq_decode.cc @@ -17,6 +17,8 @@ #include "src/utils/string.h" +using namespace modsecurity::utils::string; + namespace modsecurity::actions::transformations { diff --git a/src/actions/transformations/html_entity_decode.cc b/src/actions/transformations/html_entity_decode.cc index 0b9d811b3..8a0cc3e97 100644 --- a/src/actions/transformations/html_entity_decode.cc +++ b/src/actions/transformations/html_entity_decode.cc @@ -23,6 +23,7 @@ #include "src/compat/msvc.h" #endif +using namespace modsecurity::utils::string; namespace modsecurity::actions::transformations { diff --git a/src/actions/transformations/js_decode.cc b/src/actions/transformations/js_decode.cc index 394a2cdcf..857125c74 100644 --- a/src/actions/transformations/js_decode.cc +++ b/src/actions/transformations/js_decode.cc @@ -17,6 +17,7 @@ #include "src/utils/string.h" +using namespace modsecurity::utils::string; namespace modsecurity::actions::transformations { diff --git a/src/actions/transformations/sql_hex_decode.cc b/src/actions/transformations/sql_hex_decode.cc index 8f19e6197..0ce240872 100644 --- a/src/actions/transformations/sql_hex_decode.cc +++ b/src/actions/transformations/sql_hex_decode.cc @@ -19,6 +19,7 @@ #include "src/utils/string.h" +using namespace modsecurity::utils::string; namespace modsecurity::actions::transformations { diff --git a/src/actions/transformations/url_decode_uni.cc b/src/actions/transformations/url_decode_uni.cc index 57df7a566..58d683c85 100644 --- a/src/actions/transformations/url_decode_uni.cc +++ b/src/actions/transformations/url_decode_uni.cc @@ -18,6 +18,7 @@ #include "modsecurity/rules_set.h" #include "src/utils/string.h" +using namespace modsecurity::utils::string; namespace modsecurity::actions::transformations { diff --git a/src/utils/decode.cc b/src/utils/decode.cc index 32d95301e..2735cf3ee 100644 --- a/src/utils/decode.cc +++ b/src/utils/decode.cc @@ -17,9 +17,9 @@ #include "modsecurity/modsecurity.h" #include "src/utils/string.h" +using namespace modsecurity::utils::string; -namespace modsecurity { -namespace utils { +namespace modsecurity::utils { bool urldecode_nonstrict_inplace(std::string &val, @@ -112,5 +112,4 @@ std::string uri_decode(const std::string & sSrc) { } -} // namespace utils -} // namespace modsecurity +} // namespace modsecurity::utils diff --git a/src/utils/string.h b/src/utils/string.h index dbfb9b479..f5e52ff06 100644 --- a/src/utils/string.h +++ b/src/utils/string.h @@ -13,6 +13,9 @@ * */ +#ifndef SRC_UTILS_STRING_H_ +#define SRC_UTILS_STRING_H_ + #include #include #include @@ -27,18 +30,21 @@ #include "src/compat/msvc.h" #endif -#ifndef SRC_UTILS_STRING_H_ -#define SRC_UTILS_STRING_H_ +namespace modsecurity::utils::string { -#define VALID_HEX(X) (((X >= '0') && (X <= '9')) || \ - ((X >= 'a') && (X <= 'f')) || ((X >= 'A') && (X <= 'F'))) -#define ISODIGIT(X) ((X >= '0') && (X <= '7')) -#define NBSP 160 +template +constexpr bool VALID_HEX(CharT X) { + return ((X >= '0') && (X <= '9')) + || ((X >= 'a') && (X <= 'f')) + || ((X >= 'A') && (X <= 'F')); +} +template +constexpr bool ISODIGIT(CharT X) { + return (X >= '0') && (X <= '7'); +} -namespace modsecurity { -namespace utils { -namespace string { +constexpr unsigned char NBSP = 160; const char HEX2DEC[256] = { /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ @@ -271,8 +277,6 @@ inline std::string toupper(std::string str) { // cppcheck-suppress passedByValue } -} // namespace string -} // namespace utils -} // namespace modsecurity +} // namespace modsecurity::utils::string #endif // SRC_UTILS_STRING_H_