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.