]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #1737 in SNORT/snort3 from ~MIALTIZE/snort3:unversioned_safec...
authorMichael Altizer (mialtize) <mialtize@cisco.com>
Sat, 7 Sep 2019 14:31:14 +0000 (10:31 -0400)
committerMichael Altizer (mialtize) <mialtize@cisco.com>
Sat, 7 Sep 2019 14:31:14 +0000 (10:31 -0400)
Squashed commit of the following:

commit 08aa510f3ae6d74ebd81023b0ef2ecf480d92c9d
Author: Michael Altizer <mialtize@cisco.com>
Date:   Fri Sep 6 11:55:17 2019 -0400

    safec: Update CMake logic for unversioned LibSafeC pkg-config name

    Thanks to Noah Dietrich <noah_dietrich@86penny.org> for reporting the issue.

cmake/FindSafeC.cmake
cmake/configure_options.cmake
configure_cmake.sh
doc/tutorial.txt
src/CMakeLists.txt
src/utils/safec.h

index a91323a5471923470a791b8b26174a0c452550e7..55f1c22bda469143b0d7b9327b3126b2303596fa 100644 (file)
@@ -1,31 +1,25 @@
 
 find_package(PkgConfig)
+pkg_check_modules(PC_SAFEC libsafec)
 
-# LibSafeC is currently incompatible with Clang - https://github.com/rurban/safeclib/issues/58
-if (PKG_CONFIG_EXECUTABLE AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
-    execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --list-all
-                    OUTPUT_VARIABLE _pkgconfig_list_result
-                    OUTPUT_STRIP_TRAILING_WHITESPACE)
-    string(REGEX MATCH "safec-([0-9]+\.[0-9])+" MATCHED ${_pkgconfig_list_result})
-    if (MATCHED)
-        set(SAFEC_VERSION ${CMAKE_MATCH_1})
-        pkg_check_modules(PC_SAFEC safec-${SAFEC_VERSION})
-
-        find_path(SAFEC_INCLUDE_DIR
-            NAMES libsafec/safe_lib.h
-            HINTS ${PC_SAFEC_INCLUDEDIR} ${PC_SAFEC_INCLUDEDIRS}
-            NO_SYSTEM_ENVIRONMENT_PATH
-        )
-        find_library(SAFEC_LIBRARIES
-            NAMES safec-${SAFEC_VERSION}
-            HINTS ${PC_SAFEC_LIBDIR} ${PC-SAFEC_LIBRARY_DIRS}
-        )
-    endif()
-endif()
+find_path(SAFEC_INCLUDE_DIR
+    NAMES safe_lib.h
+    HINTS ${PC_SAFEC_INCLUDEDIR} ${PC_SAFEC_INCLUDE_DIRS}
+    NO_SYSTEM_ENVIRONMENT_PATH
+)
+find_library(SAFEC_LIBRARIES
+    NAMES ${PC_SAFEC_LIBRARIES}
+    HINTS ${PC_SAFEC_LIBDIR} ${PC_SAFEC_LIBRARY_DIRS}
+)
 
 include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(SafeC
-    REQUIRED_VARS SAFEC_INCLUDE_DIR SAFEC_LIBRARIES
+find_package_handle_standard_args(
+    SafeC
+    REQUIRED_VARS
+        SAFEC_INCLUDE_DIR
+        SAFEC_LIBRARIES
+    VERSION_VAR
+        PC_SAFEC_VERSION
 )
 
 mark_as_advanced(
index ca2b3e3a030f52f506a7b3b1d2fb450f9cdb5535..bff6cd80667d6e51ddb2a9bb315d07f21aaa5ded 100644 (file)
@@ -94,10 +94,6 @@ if ( ENABLE_PIE )
     endif ()
 endif ( ENABLE_PIE )
 
-if ( ENABLE_SAFEC )
-    set(ENABLE_SAFEC "1")
-endif ( ENABLE_SAFEC )
-
 # debugging
 
 set ( DEBUG_MSGS ${ENABLE_DEBUG_MSGS} )
index 7a01cf462831b6c6af835eb47f2ea55a89bc0d8d..197a2433624378a7d1069771d1449682893e2ec1 100755 (executable)
@@ -27,7 +27,7 @@ Optional Features:
     --enable-code-coverage  Whether to enable code coverage support
     --enable-hardened-build Detect and use compile-time hardening options
     --enable-pie            Attempt to produce a position-independent executable
-    --disable-safec         do not use libsafec bounds checking  even if available
+    --disable-safec         do not use libsafec bounds checking even if available
     --disable-static-ips-actions
                             do not include ips actions in binary
     --disable-static-inspectors
index 7a3c5a951b720757a3b52099834c5df2101363ba..b8537c042b8900efd82850aa9f91b655358d1e9a 100644 (file)
@@ -56,7 +56,7 @@ Optional:
 * lzma >= 5.1.2 from http://tukaani.org/xz/ for decompression of SWF and
   PDF files
 
-* safec from https://github.com/rurban/safeclib/ for runtime bounds
+* safec >= 3.5 from https://github.com/rurban/safeclib/ for runtime bounds
   checks on certain legacy C-library calls
 
 * source-highlight from http://www.gnu.org/software/src-highlite/ to
index 327c512b207e50396520697f250565e2a6b4d702..779aa3fd226e3aee411cabcad95468e1fd8d01c5 100644 (file)
@@ -12,7 +12,6 @@ set(EXTERNAL_LIBRARIES
     ${OPENSSL_CRYPTO_LIBRARY}
     ${PCAP_LIBRARIES}
     ${PCRE_LIBRARIES}
-    ${SAFEC_LIBRARIES}
     ${UUID_LIBRARY}
     ${ZLIB_LIBRARIES}
 )
@@ -24,7 +23,6 @@ set(EXTERNAL_INCLUDES
     ${OPENSSL_INCLUDE_DIR}
     ${PCAP_INCLUDE_DIR}
     ${PCRE_INCLUDE_DIR}
-    ${SAFEC_INCLUDE_DIR}
     ${UUID_INCLUDE_DIR}
     ${ZLIB_INCLUDE_DIRS}
 )
@@ -38,6 +36,11 @@ if ( HS_FOUND )
     LIST(APPEND EXTERNAL_INCLUDES ${HS_INCLUDE_DIRS})
 endif ()
 
+if ( HAVE_SAFEC )
+    LIST(APPEND EXTERNAL_LIBRARIES ${SAFEC_LIBRARIES})
+    LIST(APPEND EXTERNAL_INCLUDES ${SAFEC_INCLUDE_DIR})
+endif ()
+
 if ( ICONV_FOUND )
     LIST(APPEND EXTERNAL_LIBRARIES ${ICONV_LIBRARY})
     LIST(APPEND EXTERNAL_INCLUDES ${ICONV_INCLUDE_DIR})
index 0311cef00492431539c6b7a08ddbda74cddbc773..e2a714b4726e2a56e862a37b98a1f8bd8909211d 100644 (file)
@@ -24,8 +24,8 @@
 
 extern "C"
 {
-#include <libsafec/safe_mem_lib.h>
-#include <libsafec/safe_str_lib.h>
+#include <safe_mem_lib.h>
+#include <safe_str_lib.h>
 }
 
 #else