提交 99b9c5f4 编写于 作者: J jikui 提交者: lifeng68

iSulad: supplement fuzz testcase for image.c

Signed-off-by: Njikui <jikui2@huawei.com>
上级 3082e353
......@@ -13,28 +13,51 @@ MESSAGE(STATUS "LIB_FUZZING_ENGINE is set to ${LIB_FUZZING_ENGINE}")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address -fsanitize-coverage=trace-pc")
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUGS} -fsanitize=address -fsanitize-coverage=trace-pc")
SET(EXE im_oci_image_exist_fuzz)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_executable(${EXE} im_oci_image_exist_fuzz.cpp)
target_include_directories(${EXE} PUBLIC
SET(EXE0 im_oci_image_exist_fuzz)
SET(EXE1 im_config_image_exist_fuzz)
SET(EXE2 im_get_image_count_fuzz)
add_executable(${EXE0} im_oci_image_exist_fuzz.cpp)
add_executable(${EXE1} im_config_image_exist_fuzz.cpp)
add_executable(${EXE2} im_get_image_count_fuzz.cpp)
SET(IMAGE_FUZZ_INCLUDE_DIRS
${GTEST_INCLUDE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../include
${CMAKE_CURRENT_SOURCE_DIR}/../../src
${CMAKE_CURRENT_SOURCE_DIR}/../../src/common
${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils
${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/http
${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/tar
${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/sha256
${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/cutils
${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/cutils/map
${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon
${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/modules
${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/modules/api
)
set_target_properties(${EXE} PROPERTIES LINKER_LANGUAGE CXX)
set_target_properties(${EXE} PROPERTIES LINK_FLAGS "-fsanitize=address -fsanitize-coverage=trace-pc")
target_link_libraries(${EXE} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img)
target_include_directories(${EXE0} PUBLIC
${IMAGE_FUZZ_INCLUDE_DIRS}
)
target_include_directories(${EXE1} PUBLIC
${IMAGE_FUZZ_INCLUDE_DIRS}
)
target_include_directories(${EXE2} PUBLIC
${IMAGE_FUZZ_INCLUDE_DIRS}
)
set_target_properties(${EXE0} PROPERTIES LINKER_LANGUAGE CXX)
set_target_properties(${EXE0} PROPERTIES LINK_FLAGS "-fsanitize=address -fsanitize-coverage=trace-pc")
target_link_libraries(${EXE0} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img)
set_target_properties(${EXE1} PROPERTIES LINKER_LANGUAGE CXX)
set_target_properties(${EXE1} PROPERTIES LINK_FLAGS "-fsanitize=address -fsanitize-coverage=trace-pc")
target_link_libraries(${EXE1} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img)
set_target_properties(${EXE2} PROPERTIES LINKER_LANGUAGE CXX)
set_target_properties(${EXE2} PROPERTIES LINK_FLAGS "-fsanitize=address -fsanitize-coverage=trace-pc")
target_link_libraries(${EXE2} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img)
......@@ -15,6 +15,8 @@ fi
# 运行fuzz测试程序
${current_dir}/im_oci_image_exist_fuzz ${FUZZ_OPTION} -artifact_prefix=im_oci_image_exist_fuzz-
${current_dir}/im_config_image_exist_fuzz ${FUZZ_OPTION} -artifact_prefix=im_config_image_exist_fuzz-
${current_dir}/im_get_image_count_fuzz ${FUZZ_OPTION} -artifact_prefix=im_get_image_count_fuzz-
# 查找crash文件
......@@ -26,4 +28,6 @@ if [ x"${crash}" != x"" ];then
exit 1
else
echo "all fuzz success."
rm -f ${current_dir}/corpus/*
rm -f ${current_dir}/*_fuzz
fi
/******************************************************************************
* Copyright (c) Huawei Technologies Co., Ltd. 2018-2019. All rights reserved.
* iSulad licensed under the Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
* PURPOSE.
* See the Mulan PSL v2 for more details.
* Author: jikui
* Create: 2020-07-09
* Description: provide image fuzz test
******************************************************************************/
#include <iostream>
#include <string>
#include "image_api.h"
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
std::string testData(reinterpret_cast<const char *>(data), size);
if (testData == "empty") {
im_config_image_exist(nullptr);
} else {
im_config_image_exist(testData.c_str());
}
return 0;
}
/******************************************************************************
* Copyright (c) Huawei Technologies Co., Ltd. 2018-2019. All rights reserved.
* iSulad licensed under the Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
* PURPOSE.
* See the Mulan PSL v2 for more details.
* Author: jikui
* Create: 2020-07-09
* Description: provide image fuzz test
******************************************************************************/
#include <iostream>
#include <string>
#include "image_api.h"
#include "utils.h"
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
std::string testData(reinterpret_cast<const char *>(data), size);
im_image_count_request *rq = nullptr;
char *tmp_type = nullptr;
if (testData == "empty") {
im_get_image_count(nullptr);
} else {
rq = (im_image_count_request *)util_common_calloc_s(sizeof(im_image_count_request));
tmp_type = util_strdup_s(testData.c_str());
rq->type = tmp_type;
im_get_image_count(rq);
free(tmp_type);
free(rq);
}
return 0;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册