Released YYYY-MM-DD.
Released 2024-11-07.
LLVMFuzzerCustomCrossOver through the fuzz_crossover macro. See the example_crossover directory in this crate's repo for a complete example.libFuzzer commit ab51eccf88f5321e7c60591c5546b254b6afab99 (release/19.x).Released 2023-08-10.
link_libfuzzer cargo feature. This feature is on by default and preserves the existing behavior of statically linking libfuzzer. You can disable it if you are linking your own version of libfuzzer some other way, or another library that provides the same ABI as libfuzzer.Released 2023-01-26.
fuzz_target! macro.Released 2022-10-18.
Corpus type and extended documentation for the fuzz_target! macro for details.Released 2022-09-01.
libFuzzer commit df90d22 (release/15.x).libFuzzer updates contain C++14 code)rand dependency from 0.8.3 to 0.8.5flate2 dependency from 1.0.20 to 1.0.24Released 2020-03-03.
libFuzzer commit 60e32a1.fuzz_target! macro would sometimes expand to versions of itself that were not $crate prefixed and would result in “error: cannot find macro fuzz_target in this scope” if the caller didn't import the macro but used the qualified version of it instead.Released 2020-05-26.
cargo fuzz is requesting the std::fmt::Debug output of an input or not. This is always false during regular fuzzing, so making this check faster should give slightly better fuzzing throughput.Released 2020-05-13.
fuzz_mutator! macro for details.Released 2021-02-24.
arbitrary dependency was updated to version 1.0.Released 2020-11-18.
Released 2020-08-22.
arbitrary dependency to 0.4.6Released 2020-07-27.
Upgraded libfuzzer to commit 4a4cafa.
Notably, this pulls in the new Entropic engine for libFuzzer, which should boost fuzzing efficiency when enabled. You can enable Entropic by passing -entropic=1 to your built fuzz targets (although, note that it is still labeled “experimental”).
Released 2020-03-18.
arbitrary dependency re-export to version 0.4.1.Released 2020-02-27.
Arbitrary implementation could fail to construct an instance of itself because the fuzzer provided too few bytes. See https://github.com/rust-fuzz/libfuzzer/issues/59 for details.Released 2019-01-22.
arbitrary versions 0.4.x.Released 2019-01-16.
CUSTOM_LIBFUZZER_STD_CXX=<lib> environment variable during builds that already use a custom libFuzzer checkout with CUSTOM_LIBFUZZER_PATH. This allows you to explicitly choose to link LLVM or GNU C++ standard libraries.Released 2020-01-14.
arbitrary 0.3.x now. It is re-exported as libfuzzer_sys::arbitrary.#[derive(Arbitrary)] with the "arbitrary-derive" cargo feature. This is a synonym for the arbitrary crate's "derive" cargo feature.