1## Unreleased 2 3Released YYYY-MM-DD. 4 5### Added 6 7* TODO (or remove section if none) 8 9### Changed 10 11* TODO (or remove section if none) 12 13### Deprecated 14 15* TODO (or remove section if none) 16 17### Removed 18 19* TODO (or remove section if none) 20 21### Fixed 22 23* TODO (or remove section if none) 24 25### Security 26 27* TODO (or remove section if none) 28 29-------------------------------------------------------------------------------- 30 31## 0.4.2 32 33Released 2020-05-26. 34 35### Changed 36 37* Improved performance of checking for whether `cargo fuzz` is requesting the 38 `std::fmt::Debug` output of an input or not. This is always false during 39 regular fuzzing, so making this check faster should give slightly better 40 fuzzing throughput. 41 42-------------------------------------------------------------------------------- 43 44## 0.4.1 45 46Released 2020-05-13. 47 48### Added 49 50* Added support for defining custom mutators. See [the documentation for the 51 `fuzz_mutator!` 52 macro](https://docs.rs/libfuzzer-sys/0.4.1/libfuzzer_sys/macro.fuzz_mutator.html) 53 for details. 54 55### Changed 56 57* Upgraded libfuzzer to llvm/llvm-project's 70cbc6d. 58 59-------------------------------------------------------------------------------- 60 61## 0.4.0 62 63Released 2021-02-24. 64 65### Changed 66 67* The public `arbitrary` dependency was updated to version 1.0. 68 69-------------------------------------------------------------------------------- 70 71## 0.3.5 72 73Released 2020-11-18. 74 75### Changed 76 77* [Upgrade libfuzzer to 7bf89c2](https://github.com/rust-fuzz/libfuzzer/pull/68) 78 79-------------------------------------------------------------------------------- 80 81## 0.3.4 82 83Released 2020-08-22. 84 85### Changed 86 87* Updated `arbitrary` dependency to 0.4.6 88 89-------------------------------------------------------------------------------- 90 91## 0.3.3 92 93Released 2020-07-27. 94 95### Changed 96 97* Upgraded libfuzzer to commit 98 [4a4cafa](https://github.com/llvm/llvm-project/commit/4a4cafabc9067fced5890a245b03ef5897ad988b). 99 100 Notably, this pulls in [the new Entropic engine for 101 libFuzzer](https://mboehme.github.io/paper/FSE20.Entropy.pdf), which should 102 boost fuzzing efficiency when enabled. You can enable Entropic by passing 103 `-entropic=1` to your built fuzz targets (although, note that it is still 104 labeled "experimental"). 105 106-------------------------------------------------------------------------------- 107 108## 0.3.2 109 110Released 2020-03-18. 111 112### Changed 113 114* Upgraded the `arbitrary` dependency re-export to version 0.4.1. 115 116-------------------------------------------------------------------------------- 117 118## 0.3.1 119 120Released 2020-02-27. 121 122### Changed 123 124* Fixed a fuzzing performance issue where libfuzzer could unnecessarily spend 125 time exploring all the ways that an `Arbitrary` implementation could fail to 126 construct an instance of itself because the fuzzer provided too few bytes. See 127 https://github.com/rust-fuzz/libfuzzer/issues/59 for details. 128 129-------------------------------------------------------------------------------- 130 131## 0.3.0 132 133Released 2019-01-22. 134 135### Changed 136 137* Now works with and re-exports `arbitrary` versions 0.4.x. 138 139-------------------------------------------------------------------------------- 140 141## 0.2.1 142 143Released 2019-01-16. 144 145### Added 146 147* Added support for the `CUSTOM_LIBFUZZER_STD_CXX=<lib>` environment variable 148 during builds that already use a custom libFuzzer checkout with 149 `CUSTOM_LIBFUZZER_PATH`. This allows you to explicitly choose to link LLVM or 150 GNU C++ standard libraries. 151 152-------------------------------------------------------------------------------- 153 154## 0.2.0 155 156Released 2020-01-14. 157 158### Changed 159 160* Using `arbitrary` 0.3.x now. It is re-exported as `libfuzzer_sys::arbitrary`. 161 162### Added 163 164* You can enable support for `#[derive(Arbitrary)]` with the 165 `"arbitrary-derive"` cargo feature. This is a synonym for the `arbitrary` 166 crate's `"derive"` cargo feature. 167 168-------------------------------------------------------------------------------- 169 170## 0.1.0 171