Description
I've been using cargo-fuzz and afl.rs to fuzz my (pure) rust projects, but one of those contains C++ code that I would like to be included in the fuzzing process.
The project structure looks like this:
├── build.rs
├── Cargo.toml
└── src
├── cpp
│ ├── CMakeLists.txt
│ ├── file.cpp
│ └── file.hpp
└── lib.rs
The rust build script will call cmake to build the C++ code which will be linked in the final Rust library.
Can I use cargo afl
to fuzz not only the Rust code but also the C++ code? What would be required to do so? Would the C++ code need to be compiled in a certain way that cargo afl
cannot control (and thus I'd have to tweak my CMakeLists.txt)? Would I need to install something else (f.e. install/compile afl itself as described here: https://github.com/AFLplusplus/AFLplusplus/blob/stable/instrumentation/README.lto.md)?
I'm on macOS which comes with clang (from XCode). Is that sufficient or should a different llvm/clang should be used (f.e. from homebrew)?
Thanks!