Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
iSulad
提交
99b9c5f4
I
iSulad
项目概览
openeuler
/
iSulad
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
iSulad
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
99b9c5f4
编写于
7月 15, 2020
作者:
J
jikui
提交者:
lifeng68
7月 25, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
iSulad: supplement fuzz testcase for image.c
Signed-off-by:
N
jikui
<
jikui2@huawei.com
>
上级
3082e353
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
103 addition
and
8 deletion
+103
-8
test/fuzz/CMakeLists.txt
test/fuzz/CMakeLists.txt
+31
-8
test/fuzz/fuzz.sh
test/fuzz/fuzz.sh
+4
-0
test/fuzz/im_config_image_exist_fuzz.cpp
test/fuzz/im_config_image_exist_fuzz.cpp
+29
-0
test/fuzz/im_get_image_count_fuzz.cpp
test/fuzz/im_get_image_count_fuzz.cpp
+39
-0
未找到文件。
test/fuzz/CMakeLists.txt
浏览文件 @
99b9c5f4
...
@@ -13,28 +13,51 @@ MESSAGE(STATUS "LIB_FUZZING_ENGINE is set to ${LIB_FUZZING_ENGINE}")
...
@@ -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_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
(
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
}
)
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
}
${
GTEST_INCLUDE_DIR
}
${
CMAKE_CURRENT_SOURCE_DIR
}
/../include
${
CMAKE_CURRENT_SOURCE_DIR
}
/../include
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/common
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/common
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/http
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/http
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/tar
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/tar
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/sha256
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/sha256
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/cutils
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/cutils
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/cutils/map
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/utils/cutils/map
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/daemon
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/daemon
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/daemon/modules
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/daemon/modules
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/daemon/modules/api
${
CMAKE_CURRENT_SOURCE_DIR
}
/../../src/daemon/modules/api
)
)
set_target_properties
(
${
EXE
}
PROPERTIES LINKER_LANGUAGE CXX
)
target_include_directories
(
${
EXE0
}
PUBLIC
set_target_properties
(
${
EXE
}
PROPERTIES LINK_FLAGS
"-fsanitize=address -fsanitize-coverage=trace-pc"
)
${
IMAGE_FUZZ_INCLUDE_DIRS
}
target_link_libraries
(
${
EXE
}
${
CMAKE_THREAD_LIBS_INIT
}
${
ISULA_LIBUTILS_LIBRARY
}
${
LIB_FUZZING_ENGINE
}
pthread rt -lisulad_img
)
)
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
)
test/fuzz/fuzz.sh
浏览文件 @
99b9c5f4
...
@@ -15,6 +15,8 @@ fi
...
@@ -15,6 +15,8 @@ fi
# 运行fuzz测试程序
# 运行fuzz测试程序
${
current_dir
}
/im_oci_image_exist_fuzz
${
FUZZ_OPTION
}
-artifact_prefix
=
im_oci_image_exist_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文件
# 查找crash文件
...
@@ -26,4 +28,6 @@ if [ x"${crash}" != x"" ];then
...
@@ -26,4 +28,6 @@ if [ x"${crash}" != x"" ];then
exit
1
exit
1
else
else
echo
"all fuzz success."
echo
"all fuzz success."
rm
-f
${
current_dir
}
/corpus/
*
rm
-f
${
current_dir
}
/
*
_fuzz
fi
fi
test/fuzz/im_config_image_exist_fuzz.cpp
0 → 100644
浏览文件 @
99b9c5f4
/******************************************************************************
* 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
;
}
test/fuzz/im_get_image_count_fuzz.cpp
0 → 100644
浏览文件 @
99b9c5f4
/******************************************************************************
* 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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录