* implement an AFL-Style TUI
* improve the tui/mod.rs according to the reviews
* fixing fmt manually
---------
Co-authored-by: toseven <Byone.heng@gmail.com>
Co-authored-by: Dominik Maier <domenukk@gmail.com>
* Make xxh3 hashing optional (and default to ahash)
* make xxh3 default anyway
* move import
* fix no_alloc
* No ahash without alloc
* fix import
* Keep xxh3 as default for libafl as well
* no randomness for xoshiro
previously we searched for the first and the last difference
between exactly the same 2 inputs 3 times in a loop
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
* update documentation of `MinimizerScheduler`
(convert a few references to types into doc links and update the docs of `on_remove`)
* replace manual implementation of `slice::fill`
the in the code comment linked stackoverflow comment https://stackoverflow.com/a/51732799/1345238/
now mentions `slice::fill`
it seems to compile to the same thing as the old version https://rust.godbolt.org/z/98Y4x97vY
* fix docs for the `*InterestingMutator`s and `*ByteAddMutator`s
the macros didn't previously docs gens didn't previously
generate fitting docs
* Make cmp metadata generic, rename ForkserverCmpObservers with more accurate names
* Fix zeroed assignment in cmplogmap
* Dont use prelude in libafl_targets
* Make _mut functions actually return mut references
* Fix fuzzbench forkserver build
* Add type alias for easier construction of the standard cmp observer and add aux data accessors
mostly due std::cell namespace introduction in the 1.70 version.
as rust versions evolve fast enough, it might be easier than
having conditional dependency on he old once_cell crate.
* prep for publishing libafl_libfuzzer
* learn to use linkers
* document-features
* special handling for fuzzbench builds
* Update cmplog.c
* drop dep for llvm-tools; add testcase for memcmp sanity
---------
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
* squash libfuzzer edits
* fixup: compat with custom mutators
* use tui flag
* add introspection support
* use libfuzzer dep now that we've merged
* force input loading
* some fixes
* begin docs, impl shrink
* make whole-archive conditional and not default
* make more copies of counters maps
* lol, remember to add the observer
* make size edge map observer an observer
* fixup: make def of run driver conditional
* add sanity checks for insertion
* revert silencing of forks
* add experimental tmin support; add default asan flags
* use default options instead of specifying our own
* implement lockless mode
* fix merge
* fixup lockless corpus
* fixup for generalisation
* remove erroneous drop_in_place
* improve error logging in the case of corpus loading failure
* ok, use lock files 😔
* fix tmin
* implement merge (again); fix rare cases with maps being too small
* implement a scheduler for removing excess
* implement a walking strategy for corpus loading for large corpora
* revert filename parameter; rename and remove duplicates
* various cleanup and clippy satisfaction
* fix no_std tests
* clang-format
* expand and satisfy the clippy gods
* fix sanitizer_ifaces bindgen for no_std
* fix wasm fuzzer
* fixup clippy script
* rename and provide a small amount of explanation for sanitizer_interfaces
* fixup: HasLastReportTime
* fix clippy oddities
* restrict clippy checks to linux-only for libafl_libfuzzer_runtime
* name the mutators
* format
* fix clippy warning
* hope docker is fixed
* fix cmin lint
* clippy pass
* more docs
* more clippy
* fix remaining clippy complaints
* fix import
* miri fixes (no constructors executed)
* exclude libafl_libfuzzer from cargo-hack
* fix clippy check for sanitizer_interfaces
* fmt
* fix CI (?)
* deduplicate sancov 8bit for improved perf on ASAN
* merge 8bit coverage regions + comment out insane deduplication
* no erroring out on free hooks
* fixup for non-forking merge
* skip the corpus dir if we use it
* fixup: recent libafl changes and feature flags
* libafl_libfuzzer: use rust-lld for whole-archive feature
* clarify cause of failure
* mark unsafe
* clippy :cursed_cowboy:
* attempt to fix wasm
* spooky unknowable bug 👻
* more clippy lints
* clippy fix for merge
* use the version pin
* add unsafe to ::register
* Serdeany autoreg fix
* make type assert actionable
* miri fixes
---------
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Dominik Maier <dmnk@google.com>
Co-authored-by: Mrmaxmeier <Mrmaxmeier@gmail.com>
* Allow setting the max iterations
* Rename API
* Fix baby_fuzzer_grimoire
* Relax bound
* Also add a new API for transforming
* Revert back grimoire fix
* Revert bound relax
* Make some functions const
* fix isprint
* more const
* move integer_sqrt to bolts, use binary search, use u128 to handle extreme values
* Technically correct
* clippy
* u64 algo
* More test
* cumulative_distribution to in_place
* move calculate_cumulative_distribution_in_place to bolts
* clippy
* Move math stuff to bolts::math
* actually add math
* math?
* For some reason this fixes things, dunno
* fix builds?
* does that help?
* clippy ignores
* more clean clippy
* more cfg_attr