]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Added cmake support for testing against CVEs (#354)
authorNathan Moinvaziri <nathan@nathanm.com>
Sat, 22 Jun 2019 07:49:32 +0000 (00:49 -0700)
committerHans Kristian Rosbach <hk-git@circlestorm.org>
Sat, 22 Jun 2019 07:49:32 +0000 (09:49 +0200)
CMakeLists.txt
cmake/run-and-redirect.cmake [new file with mode: 0644]

index e6af74114e6defa652f6a6d1827b33f44bbd9122..b1845522b557a9e98df9a764ad81066a2705db1b 100644 (file)
@@ -842,6 +842,23 @@ if (ZLIB_ENABLE_TESTS)
             add_test(${FUZZER}_fuzzer ${FUZZER}_fuzzer${CMAKE_EXECUTABLE_SUFFIX} ${ALL_SRC_FILES})
         endforeach()
     endif()
+
+    set(CVES CVE-2002-0059 CVE-2004-0797 CVE-2005-1849 CVE-2005-2096)
+    foreach(CVE ${CVES})
+        set(CVE_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:minigzip> -d)
+        add_test(NAME ${CVE}
+            COMMAND ${CMAKE_COMMAND}
+            "-DCOMMAND=${CVE_COMMAND}"
+            -DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/test/${CVE}/test.gz
+            "-DSUCCESS_EXIT=0;1"
+            -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run-and-redirect.cmake)
+    endforeach()
+
+    if(NOT WIN32 AND ZLIB_COMPAT)
+        add_executable(CVE-2003-0107 test/CVE-2003-0107.c)
+        target_link_libraries(CVE-2003-0107 zlib)
+        add_test(NAME CVE-2003-0107 COMMAND CVE-2003-0107)
+    endif()
 endif()
 
 FEATURE_SUMMARY(WHAT ALL INCLUDE_QUIET_PACKAGES)
diff --git a/cmake/run-and-redirect.cmake b/cmake/run-and-redirect.cmake
new file mode 100644 (file)
index 0000000..a18fa5e
--- /dev/null
@@ -0,0 +1,18 @@
+if(WIN32)
+    set(DEVNULL NUL)
+else()
+    set(DEVNULL /dev/null)
+endif()
+execute_process(COMMAND ${COMMAND}
+    RESULT_VARIABLE CMD_RESULT
+    INPUT_FILE ${INPUT}
+    OUTPUT_FILE ${DEVNULL})
+if(SUCCESS_EXIT)
+    list(FIND SUCCESS_EXIT ${CMD_RESULT} _INDEX)
+    if (${_INDEX} GREATER -1)
+        set(CMD_RESULT 0)
+    endif()
+endif()
+if(CMD_RESULT)
+    message(FATAL_ERROR "${COMMAND} failed: ${CMD_RESULT}")
+endif()