From: Nathan Moinvaziri Date: Sat, 22 Jun 2019 07:49:32 +0000 (-0700) Subject: Added cmake support for testing against CVEs (#354) X-Git-Tag: 1.9.9-b1~472 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6f6bdcb47fecf7bb672fe621676354b4af3cb06b;p=thirdparty%2Fzlib-ng.git Added cmake support for testing against CVEs (#354) --- diff --git a/CMakeLists.txt b/CMakeLists.txt index e6af7411..b1845522 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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} $ -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 index 00000000..a18fa5e7 --- /dev/null +++ b/cmake/run-and-redirect.cmake @@ -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()