mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
committed by
akallabeth
parent
1c0c804981
commit
b1ae467ae2
@@ -8,6 +8,11 @@ set(${MODULE_PREFIX}_TESTS
|
||||
TestAddinArgv.c
|
||||
TestCommonAssistance.c)
|
||||
|
||||
set(${MODULE_PREFIX}_FUZZERS
|
||||
TestFuzzCommonAssistanceParseFileBuffer.c
|
||||
TestFuzzCommonAssistanceBinToHexString.c
|
||||
TestFuzzCommonAssistanceHexStringToBin.c)
|
||||
|
||||
create_test_sourcelist(${MODULE_PREFIX}_SRCS
|
||||
${${MODULE_PREFIX}_DRIVER}
|
||||
${${MODULE_PREFIX}_TESTS})
|
||||
@@ -16,6 +21,18 @@ add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
|
||||
target_link_libraries(${MODULE_NAME} freerdp winpr)
|
||||
|
||||
if (BUILD_FUZZERS)
|
||||
foreach(test ${${MODULE_PREFIX}_FUZZERS})
|
||||
get_filename_component(TestName ${test} NAME_WE)
|
||||
add_executable(${TestName} ${test})
|
||||
# Use PUBLIC to force 'fuzzer_config' for all dependent targets.
|
||||
target_link_libraries(${TestName} PUBLIC freerdp winpr fuzzer_config)
|
||||
add_test(${TestName} ${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME} ${TestName})
|
||||
set_target_properties(${TestName} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
|
||||
add_dependencies(fuzzers ${TestName})
|
||||
endforeach()
|
||||
endif (BUILD_FUZZERS)
|
||||
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
|
||||
|
||||
foreach(test ${${MODULE_PREFIX}_TESTS})
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#include <freerdp/assistance.h>
|
||||
|
||||
int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
|
||||
{
|
||||
char* pass = freerdp_assistance_bin_to_hex_string((void*)Data, Size);
|
||||
free(pass);
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
#include <freerdp/assistance.h>
|
||||
|
||||
int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
|
||||
{
|
||||
BYTE* pass = freerdp_assistance_hex_string_to_bin((void*)Data, &Size);
|
||||
free(pass);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
#include <freerdp/assistance.h>
|
||||
|
||||
static int parse_file_buffer(const uint8_t* Data, size_t Size)
|
||||
{
|
||||
static const char TEST_MSRC_INCIDENT_PASSWORD_TYPE2[] = "48BJQ853X3B4";
|
||||
int status = -1;
|
||||
rdpAssistanceFile* file = freerdp_assistance_file_new();
|
||||
if (!file)
|
||||
return -1;
|
||||
status = freerdp_assistance_parse_file_buffer(file, (char*)Data, Size,
|
||||
TEST_MSRC_INCIDENT_PASSWORD_TYPE2);
|
||||
freerdp_assistance_file_free(file);
|
||||
|
||||
return status >= 0 ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size)
|
||||
{
|
||||
parse_file_buffer(Data, Size);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user