diff --git a/meson.build b/meson.build index 8c71a63f..c73c73ca 100644 --- a/meson.build +++ b/meson.build @@ -405,7 +405,7 @@ executable( # Note: this target must be built with clang! executable( 'fuzz_wordsplit', - fuzzing_sources, + fuzz_wordsplit_sources, include_directories : includes, link_with : [libcommon], dependencies : [], @@ -413,6 +413,18 @@ executable( link_args : ['-fsanitize=fuzzer,address', '-ggdb', '-O0', '-fno-omit-frame-pointer'], ) +# Note: this target must be built with clang! +executable( + 'fuzz_string_length', + [fuzz_string_length_sources, pacman_sources], + include_directories : includes, + link_with : [libalpm_a, libcommon], + dependencies : [], + c_args : ['-fsanitize=fuzzer,address', '-ggdb', '-O0', '-fno-omit-frame-pointer', '-DFUZZING_PACMAN'], + link_args : ['-fsanitize=fuzzer,address', '-ggdb', '-O0', '-fno-omit-frame-pointer'], +) + + foreach wrapper : script_wrappers cdata = configuration_data() cdata.set_quoted('BASH', BASH.full_path()) diff --git a/src/fuzzing/fuzz_util_string_length.c b/src/fuzzing/fuzz_string_length.c similarity index 67% rename from src/fuzzing/fuzz_util_string_length.c rename to src/fuzzing/fuzz_string_length.c index a6b04fb2..f6dac010 100644 --- a/src/fuzzing/fuzz_util_string_length.c +++ b/src/fuzzing/fuzz_string_length.c @@ -5,11 +5,14 @@ #include #include -#include "util.h" +// TODO/FIXME: Fix the util.h include +//#include "util.h" +// And remove that function header from here +size_t string_length(const char *s); int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size); -static int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { if (Size == 0) return 0; diff --git a/src/fuzzing/meson.build b/src/fuzzing/meson.build index e7f02a28..13a95b3e 100644 --- a/src/fuzzing/meson.build +++ b/src/fuzzing/meson.build @@ -1,3 +1,7 @@ -fuzzing_sources = files(''' +fuzz_wordsplit_sources = files(''' fuzz_wordsplit.c '''.split()) + +fuzz_string_length_sources = files(''' + fuzz_string_length.c +'''.split()) diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index e5c6e420..77c88392 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -1079,6 +1079,7 @@ static void cl_to_log(int argc, char *argv[]) } } +#ifndef FUZZING_PACMAN /** Main function. * @param argc * @param argv @@ -1273,3 +1274,4 @@ int main(int argc, char *argv[]) /* not reached */ return EXIT_SUCCESS; } +#endif //FUZZING_PACMAN