Skip to content

Conversation

@kevin-valerio
Copy link
Contributor

@kevin-valerio kevin-valerio commented Apr 15, 2025

The goal of this PR is multiple.

  • Fuzz any given libFuzzer harnesses that implement a correct LLVMFuzzerTestOneInput
  • Compile ASAN/UBSAN version of the target
  • Create a proper runner to execute inputs
  • Generate coverage report for the C++ codebase
  • Integrate CMPLOG into the target

In an ideal world, a user would just have to create a valid LLVMFuzzerTestOneInput and CMakeList.txt, execute cargo ziggy fuzz --asan --cpp, and the magic deployment should follow.

This is still WIP, as of the 15/04/2025, the ASAN/CMPLOG/target compilation works well, same for fuzzing. An example is given under the associated directory

ToDos:

  • UBSAN
  • Coverage report generation
  • Minimizer
  • Linking to LTO or not via the .config file
  • Extra params for -D and ASAN_OPTIONS
  • Using remote Ziggy and not local Ziggy in root_dir/Cargo.toml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant