diff options
author | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2020-02-27 11:42:04 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2020-03-04 10:42:45 +0100 |
commit | 24843614ecb8bbbd148ff00f1775443725652e05 (patch) | |
tree | 3997a975b43420cacab8d52d81c1b03c1acf9be1 /cmake/FindRE2.cmake | |
parent | 82d960e4f947fba587639c7f70e51d3f700c01b8 (diff) |
Use Google RE2 as underlying regex engine
This introduces guaranteed upper bounds for memory usage and
CPU time during regex evaluation. Most importantly, it removes
the danger of catastrophic backtracking that is currrently
present in GCC's std::regex implementation.
With this commit, RE2 will be used instead of std::regex for:
* Document selection regex/glob operators
* Attribute regex search
* Evaluation of mTLS authorization rules
Diffstat (limited to 'cmake/FindRE2.cmake')
-rw-r--r-- | cmake/FindRE2.cmake | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/cmake/FindRE2.cmake b/cmake/FindRE2.cmake new file mode 100644 index 00000000000..af1ff799bd7 --- /dev/null +++ b/cmake/FindRE2.cmake @@ -0,0 +1,19 @@ +# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +# There is no bundled FindRE2, so we supply our own minimal version to find +# the system RE2 library and header files. + +find_path(RE2_INCLUDE_DIR + NAMES re2/re2.h +) + +find_library(RE2_LIBRARIES + NAMES re2 +) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(RE2 + FOUND_VAR RE2_FOUND + REQUIRED_VARS RE2_LIBRARIES RE2_INCLUDE_DIR +) + |