From f8de297c6fd0022b23f7c0e8d6eb86d6d15108bb Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Thu, 14 Apr 2022 12:38:14 -0700 Subject: [PATCH] Escape special characters in paths before using them as regexes --- cmake | 2 +- src/CMakeLists.txt | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake b/cmake index 960ca0a43b..d23b14b4c1 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit 960ca0a43b1691b771245826a50fcf53d49ed59b +Subproject commit d23b14b4c146d59ebb68b81650e2e314047ed460 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dfc253ed69..63478cc610 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -575,6 +575,10 @@ install(CODE " ) ") +# Make sure to escape a bunch of special characters in the path before trying to use it as a +# regular expression below. +string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" escaped_path "${CMAKE_CURRENT_SOURCE_DIR}/zeek") + install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include/zeek FILES_MATCHING @@ -582,7 +586,7 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ PATTERN "*.pac" PATTERN "3rdparty/*" EXCLUDE # The "zeek -> ." symlink isn't needed in the install-tree - REGEX "^${CMAKE_CURRENT_SOURCE_DIR}/zeek$" EXCLUDE + REGEX "^${escaped_path}$" EXCLUDE ) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/