]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #677 in SNORT/snort3 from tsan to master
authorRuss Combs (rucombs) <rucombs@cisco.com>
Mon, 17 Oct 2016 14:29:06 +0000 (10:29 -0400)
committerRuss Combs (rucombs) <rucombs@cisco.com>
Mon, 17 Oct 2016 14:29:06 +0000 (10:29 -0400)
Squashed commit of the following:

commit 41f296afebaf7a455a4affeae8459820aeb868aa
Author: Russ Combs <rucombs@cisco.com>
Date:   Sun Oct 16 19:08:16 2016 -0400

    fix -Wmaybe-uninitialized issues

commit 83ad8eb66ddee47247452fb0c00cb9ab03dda8bd
Author: Russ Combs <rucombs@cisco.com>
Date:   Fri Oct 14 06:08:51 2016 -0400

    add build configuration for thread sanitizer

CMakeLists.txt
cmake/configure_options.cmake
cmake/create_options.cmake
configure.ac
configure_cmake.sh
src/decompress/file_decomp.cc
src/decompress/file_decomp_pdf.cc
src/decompress/file_decomp_swf.cc

index 6d89d412cd3fc3499b74515edbb42fd24513c628..3b088f8305a718070292f79564a6045d420e5d1a 100644 (file)
@@ -37,6 +37,9 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_COMPILER_FLAGS}")
 # FIXIT - there is probably a better way to do this
 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
 
+set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SPECIAL_FLAGS}" )
+set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SPECIAL_FLAGS}" )
+
 include_directories (${PROJECT_BINARY_DIR})
 include_directories (${PROJECT_SOURCE_DIR})
 
index d116576384c3e650cb266837ae471fa2fb3aa198..a78009690c2038373e4b2ddb22c7946519891530 100644 (file)
@@ -113,10 +113,13 @@ if ( ENABLE_PROFILE AND CMAKE_COMPILER_IS_GNUCXX )
 endif ( ENABLE_PROFILE AND CMAKE_COMPILER_IS_GNUCXX )
 
 if ( ENABLE_ADDRESS_SANITIZER )
-    set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer" )
-    set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer" )
+    set ( SPECIAL_FLAGS "-fsanitize=address -fno-omit-frame-pointer" )
 endif ( ENABLE_ADDRESS_SANITIZER )
 
+if ( ENABLE_THREAD_SANITIZER )
+    set ( SPECIAL_FLAGS "-fsanitize=thread -fno-omit-frame-pointer" )
+endif ( ENABLE_THREAD_SANITIZER )
+
 if ( ENABLE_CODE_COVERAGE )
     set ( CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -DNDEBUG" )
     set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -fprofile-arcs -ftest-coverage" )
index a7438f46211b34f4a0298f88d1195f80ec349974..a6a9d0bf376d200181154d279c7863e36f23ae2f 100644 (file)
@@ -40,6 +40,7 @@ option ( ENABLE_DEBUG "Enable debugging options (bugreports and developers only)
 option ( ENABLE_GDB "Enable gdb debugging information" OFF )
 option ( ENABLE_PROFILE "Enable profiling options (developers only)" OFF )
 option ( ENABLE_ADDRESS_SANITIZER "enable address sanitizer support" OFF )
+option ( ENABLE_THREAD_SANITIZER "enable thread sanitizer support" OFF )
 option ( ENABLE_CODE_COVERAGE "Whether to enable code coverage support" OFF )
 
 # signals
index 6d74b5b61b0eac452888ee25043ac8047acbd389..96a63d540774e3c13db00bd6b241604a98a57f7e 100644 (file)
@@ -420,11 +420,17 @@ if test "x$enable_corefiles" = "xno"; then
 fi
 
 AC_ARG_ENABLE(address-sanitizer,
-    AS_HELP_STRING([--enable-address-sanitizer],[enable AddressSanitizer support]),
+    AS_HELP_STRING([--enable-address-sanitizer],[enable address sanitizer support]),
     [
         ASAN_CCXFLAGS="-fsanitize=address -fno-omit-frame-pointer"
     ])
 
+AC_ARG_ENABLE(thread-sanitizer,
+    AS_HELP_STRING([--enable-thread-sanitizer],[enable thread sanitizer support]),
+    [
+        ASAN_CCXFLAGS="-fsanitize=thread -fno-omit-frame-pointer"
+    ])
+
 #--------------------------------------------------------------------------
 # compile-time security features
 #--------------------------------------------------------------------------
index bf47415bd40704c03631e6c43f2b2b918604c81d..5a8130a81bb4efe9370d49340bfc27fa6fd17f81 100755 (executable)
@@ -50,6 +50,8 @@ Optional Features:
     --disable-corefiles     prevent Snort from generating core files
     --enable-address-sanitizer
                             enable address sanitizer support
+    --enable-thread-sanitizer
+                            enable thread sanitizer support
     --enable-unit-tests     build unit tests
     --enable-piglet         build piglet test harness
     --disable-static-daq    link static DAQ modules
@@ -260,6 +262,12 @@ while [ $# -ne 0 ]; do
         --disable-address-sanitizer)
             append_cache_entry ENABLE_ADDRESS_SANITIZER BOOL false
             ;;
+        --enable-thread-sanitizer)
+            append_cache_entry ENABLE_THREAD_SANITIZER  BOOL true
+            ;;
+        --disable-thread-sanitizer)
+            append_cache_entry ENABLE_THREAD_SANITIZER  BOOL false
+            ;;
         --enable-unit-tests)
             append_cache_entry ENABLE_UNIT_TESTS        BOOL true
             ;;
index 036cbc96a3c0ee9614f50813b87393cfa6392296..fdd2f724506a83f8fca1631aab8f11d1a3b9bdd0 100644 (file)
@@ -479,9 +479,9 @@ TEST_CASE("File_Decomp_SetBuf-null", "[file_decomp]")
 
 TEST_CASE("File_Decomp_SetBuf-Decompr_Depth-error", "[file_decomp]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->Total_Out = 20;
     p_s->Decompr_Depth = 10;
     REQUIRE(File_Decomp_SetBuf(p_s) == File_Decomp_Error);
@@ -490,9 +490,9 @@ TEST_CASE("File_Decomp_SetBuf-Decompr_Depth-error", "[file_decomp]")
 
 TEST_CASE("File_Decomp_SetBuf-Compr_Depth-error", "[file_decomp]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->Total_In = 20;
     p_s->Compr_Depth = 10;
     REQUIRE(File_Decomp_SetBuf(p_s) == File_Decomp_Error);
@@ -501,9 +501,9 @@ TEST_CASE("File_Decomp_SetBuf-Compr_Depth-error", "[file_decomp]")
 
 TEST_CASE("File_Decomp_New", "[file_decomp]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     REQUIRE(p_s->State == STATE_NEW);
     REQUIRE(p_s->Sig_State == 0);
     REQUIRE(p_s->Total_In == 0);
@@ -522,18 +522,18 @@ TEST_CASE("File_Decomp-null", "[file_decomp]")
 
 TEST_CASE("File_Decomp-not_active", "[file_decomp]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     REQUIRE(File_Decomp(p_s) == File_Decomp_Error);
     File_Decomp_Free(p_s);
 }
 
 TEST_CASE("File_Decomp-complete_state", "[file_decomp]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->State = STATE_COMPLETE;
     REQUIRE(File_Decomp(p_s) == File_Decomp_Error);
     File_Decomp_Free(p_s);
@@ -541,20 +541,20 @@ TEST_CASE("File_Decomp-complete_state", "[file_decomp]")
 
 TEST_CASE("Initialize_Decompression-not_active", "[file_decomp]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     REQUIRE(Initialize_Decompression(p_s) == File_Decomp_Error);
     File_Decomp_Free(p_s);
 }
 
 TEST_CASE("Process_Decompression-not_active", "[file_decomp]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     REQUIRE(Process_Decompression(p_s) == File_Decomp_Error);
     File_Decomp_Free(p_s);
 }
-
 #endif
+
index d5295fba705d8c69d314f32c016f5de17ac6dcef..db9fbbad152a34cfcfb9166c8cf2ee5c093006ac 100644 (file)
@@ -1173,9 +1173,9 @@ TEST_CASE("File_Decomp_End_PDF-null", "[file_decomp_pdf]")
 
 TEST_CASE("File_Decomp_PDF-not_pdf-error", "[file_decomp_pdf]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->PDF = (fd_PDF_t*)snort_calloc(sizeof(fd_PDF_t));
     p_s->File_Type = FILE_TYPE_SWF;
     REQUIRE(File_Decomp_PDF(p_s) == File_Decomp_Error);
@@ -1185,9 +1185,9 @@ TEST_CASE("File_Decomp_PDF-not_pdf-error", "[file_decomp_pdf]")
 
 TEST_CASE("File_Decomp_PDF-bad_state-error", "[file_decomp_pdf]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->PDF = (fd_PDF_t*)snort_calloc(sizeof(fd_PDF_t));
     p_s->File_Type = FILE_TYPE_PDF;
     p_s->PDF->State = PDF_STATE_NEW;
@@ -1197,9 +1197,9 @@ TEST_CASE("File_Decomp_PDF-bad_state-error", "[file_decomp_pdf]")
 
 TEST_CASE("File_Decomp_End_PDF-bad_type-error", "[file_decomp_pdf]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->PDF = (fd_PDF_t*)snort_calloc(sizeof(fd_PDF_t));
     p_s->File_Type = FILE_TYPE_PDF;
     p_s->PDF->Decomp_Type = FILE_COMPRESSION_TYPE_LZMA;
@@ -1207,5 +1207,5 @@ TEST_CASE("File_Decomp_End_PDF-bad_type-error", "[file_decomp_pdf]")
     REQUIRE(File_Decomp_End_PDF(p_s) == File_Decomp_Error);
     File_Decomp_Free(p_s);
 }
-
 #endif
+
index 6b534b8f05f39ba1bde4bc7ed8682d47240684d3..3ff04c55faa7e55581e0e0aa9969e00c541445fe 100644 (file)
@@ -363,9 +363,9 @@ TEST_CASE("File_Decomp_End_SWF-null", "[file_decomp_swf]")
 
 TEST_CASE("File_Decomp_SWF-not_swf-error", "[file_decomp_swf]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->SWF = (fd_SWF_t*)snort_calloc(sizeof(fd_SWF_t));
     p_s->File_Type = FILE_TYPE_PDF;
     REQUIRE(File_Decomp_SWF(p_s) == File_Decomp_Error);
@@ -375,9 +375,9 @@ TEST_CASE("File_Decomp_SWF-not_swf-error", "[file_decomp_swf]")
 
 TEST_CASE("File_Decomp_SWF-bad_state-error", "[file_decomp_swf]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->SWF = (fd_SWF_t*)snort_calloc(sizeof(fd_SWF_t));
     p_s->File_Type = FILE_TYPE_SWF;
     p_s->SWF->State = SWF_STATE_NEW;
@@ -387,9 +387,9 @@ TEST_CASE("File_Decomp_SWF-bad_state-error", "[file_decomp_swf]")
 
 TEST_CASE("File_Decomp_Init_SWF-bad_type-error", "[file_decomp_swf]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->File_Type = FILE_TYPE_SWF;
     p_s->Decomp_Type = FILE_COMPRESSION_TYPE_DEFLATE;
     REQUIRE(File_Decomp_Init_SWF(p_s) == File_Decomp_Error);
@@ -398,15 +398,14 @@ TEST_CASE("File_Decomp_Init_SWF-bad_type-error", "[file_decomp_swf]")
 
 TEST_CASE("File_Decomp_End_SWF-bad_type-error", "[file_decomp_swf]")
 {
-    fd_session_p_t p_s;
+    fd_session_p_t p_s = File_Decomp_New();
 
-    REQUIRE((p_s = File_Decomp_New()) != (fd_session_p_t)NULL);
+    REQUIRE(p_s != nullptr);
     p_s->SWF = (fd_SWF_t*)snort_calloc(sizeof(fd_SWF_t));
     p_s->Decomp_Type = FILE_COMPRESSION_TYPE_DEFLATE;
     REQUIRE(File_Decomp_End_SWF(p_s) == File_Decomp_Error);
     p_s->File_Type = FILE_TYPE_SWF;
     File_Decomp_Free(p_s);
 }
-
-
 #endif
+