* make use of clap derive in forkserver_simple
* (re)introduce use_shmem_testcase flag to ForkserverExecutor
* set use_shmem_testcase flag automatically based on forkserver handshake
* remove illegal_state and just .unwrap instead as the None case is unreachable
* fix: removed pub method
* cargo fmt
* remove illegal_state #2 and just .unwrap instead as the None case is unreachable
* change shmem unwrap to unwrap_unchecked
* fix double mut
* removed @@ warning
* Associated types for Corpus, State
* cleanup
* fix no_std
* drop unused clauses
* Corpus
* cleanup
* adding things
* fixed fuzzer
* remove phantom data
* python
* progress?
* more more
* oof
* wow it builds?
* python fixes, tests
* fix python fun
* black fmt for python
* clippy, added Nop things
* fixes
* fix merge
* make it compile (#836)
* doc-test fixes, prelude-b-gone for cargo-hack compat
* fixes for windows, concolic
* really fix windows, maybe
* imagine using windows
* ...
* elide I generic when used with S: State
* Elide many, many generics, but at what cost?
* progress on push
* Constraint HasCorpus, HasSolutions at trait definition
* remove unused feature
* remove unstable usage since we constrained HasCorpus at definition
* compiled, but still no type inference for MaxMapFeedback
* cleanup inprocess
* resolve some std conflicts
* simplify map
* undo unnecessary cfg specification
* fix breaking test case for CI on no-std
* fix concolic build failures
* fix macos build
* fixes for windows build
* timeout fixes for windows build
* fix pybindings issues
* fixup qemu
* fix outstanding local build issues
* maybe fix windows inprocess
* doc fixes
* unbridled fury
* de-associate State from Feedback, replace with generic as AT inference is not sufficient to derive specialisation for MapFeedback
* merge update
* refactor + speed up fuzzer builds by sharing build work
* cleanup lingering compiler errors
* lol missed one
* revert QEMU-Nyx change, not sure how I did that
* move HasInput to inputs
* HasInput => KnowsInput
* update bounds to enforce via associated types
* disentangle observers with fuzzer
* revert --target; update some fuzzers to match new API
* resolve outstanding fuzzer build blockers (that I can run on my system)
* fixes for non-linux unixes
* fix for windows
* Knows => Uses, final fixes for windows
* <guttural screaming>
* fixes for concolic
* loosen bound for frida executor so windows builds correctly
* cleanup generics for eventmanager/eventprocessor to drop observers requirement
* improve inference over fuzz_one and friends
* update migration notes
* fixes for python bindings
* fixes for generic counts in event managers
* finish migration notes
* post-merge fix
Co-authored-by: Addison Crump <addison.crump@cispa.de>
The `debug_child` command line argument presence was not properly checked,
so it couldn't be set to true. Hence it was not possible to print out
the content of the buffer sent to the harness while fuzzing.
* documentation, warnings
* fixed docs
* docs
* no_std
* test
* windows
* nautilus docs
* more fixes
* more docs
* nits
* windows clippy
* docs, windows
* nits
* debug all the things
* derive debug for all core library components
* Docu for libafl_targets
* nits
* reordered generics
* add docs to frida, debug
* nits
* fixes
* more docu for frida, nits
* more docu
* more docu
* Sugar docs
* debug for qemu
* more debug
* import debug
* fmt
* debug
* anyap_debug feature no longer needed
* tidy up unused fn
* indicate if we left out values for struct debug
* implement Debug for sugar
* debug allthethings
* ci
* starting to fix macos linker bugs
* mdetailed error prints
* start shmem service manually
* not a doc comment
* Some fixes
* only send exit msg to shmemservice when start was successful
* incorporated shmem service into provider
* removed unused imports
* trying to fix fuzzers
* fixed build
* check if join_handle is_some
* more debug prints
* fixed shmem service autolaunch
* fixed macos linker
* ignoring broken libpng testcase on macos for now (see #252)
* fmt
* try to fix missing llvm_config (see #253)
* empty issue template added
* Mmanually look for llvm-config on MacOS
* fixing CI
* fixed docs
* ignoring libmozjpg for CI, see #254
* build_all_fuzzer.shj
* run.sh
* output log
* ENABLE_SHARED off
* libc6-dev
* echo
* no need to cargo build twice
* replaced realpath (not available on macos) with /Users/domenukk/tmp/libaflrs/fuzzers/libfuzzer_libpng_launcher
* replaced PWD with pwd
* trying to get llvm-config working
* more sudo?
* slash
* trying to get all deps
* more info
* delete apt install from build_all_fuzzers.sh
* correct libfuzzer_libpng makefile
* fix build for libfuzzer_libpng
* fix other makefiles
* nproc not supported on macos
* no run.sh, use make short_test
* enable_shared=false
* just Linux
* fix
* forkserver makefile
* fix
* stb_image Makefile
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
* add Forkserver, Pipe Outfile struct
* add forkserver executor struct, and shmem init
* close pipes in the destructor of Forkserver
* fill pre_exec to write out the inputs
* fix
* read_st, write_ctl
* more handshakes
* wrap Pipe in Arc, fill post_exec
* add Forkserver, Pipe Outfile struct
* add forkserver executor struct, and shmem init
* close pipes in the destructor of Forkserver
* fill pre_exec to write out the inputs
* fix
* read_st, write_ctl
* more handshakes
* wrap Pipe in Arc, fill post_exec
* fix for the lastest HasExecHooks trait
* use Dominik's pipe, remove Arc and temporarily pass RawFd to setstdin but trying to figure out other solutions
* add libafl_tests, put a very simple vulnerable program
* fix
* added forkserver_simple (mostly copy-pasted from babyfuzzer)
* fix test
* handle crash in post_exec
* add README.md
* check exec time to see why it's so slow
* remove double invokation of is_interesting for the obejctive
* make forkserver_simple AFL-like and improve speed
* some debugging help
* do not evaluate feedback if solution
* speedup the things
* working input placement via stdin in Forkserver
* don't call panic! but return errors, rewrite some comments
* use AFLplusplus/afl-cc instead of AFL
* use .cur_input like AFL
* bring the test for forkserver back
* add better README.md message
* failing the initial handshake should return an error
* delete some commented-out code
* format
* format
* ForkserverExecutor needs std and is unix-only for now
* clippy
* OutFile error handling
* fmt
* clippy
* don't build libafl_tests on windows
* fix
* keep test in forkserver.rs simple
* add forkserver_test feature for libafl_tests
* format
* some doc
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>