提交 da551c75 编写于 作者: M Max Bruckner

fuzzing: Speed up afl using persistent mode (in proccess fuzzing)

上级 ae4681b7
......@@ -18,6 +18,8 @@ if (ENABLE_FUZZING)
set(fuzz_print_parameter "yes")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error")
add_custom_target(afl
COMMAND "${AFL_FUZZ}" -i "${CMAKE_CURRENT_SOURCE_DIR}/inputs" -o "${CMAKE_CURRENT_BINARY_DIR}/findings" -x "${CMAKE_CURRENT_SOURCE_DIR}/json.dict" -- "${CMAKE_CURRENT_BINARY_DIR}/afl-main" "@@" "${fuzz_print_parameter}"
DEPENDS afl-main)
......
......@@ -87,7 +87,7 @@ int main(int argc, char** argv)
const char *filename = NULL;
cJSON *item = NULL;
char *json = NULL;
int status = EXIT_SUCCESS;
int status;
char *printed_json = NULL;
if ((argc < 2) || (argc > 3))
......@@ -100,6 +100,12 @@ int main(int argc, char** argv)
filename = argv[1];
#if __AFL_HAVE_MANUAL_CONTROL
while (__AFL_LOOP(1000))
{
#endif
status = EXIT_SUCCESS;
json = read_file(filename);
if ((json == NULL) || (json[0] == '\0') || (json[1] == '\0'))
{
......@@ -149,15 +155,21 @@ cleanup:
if (item != NULL)
{
cJSON_Delete(item);
item = NULL;
}
if (json != NULL)
{
free(json);
json = NULL;
}
if (printed_json != NULL)
{
free(printed_json);
printed_json = NULL;
}
#if __AFL_HAVE_MANUAL_CONTROL
}
#endif
return status;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册