Added Fuzzer::load_seed_input to allow additional or different handling of seed inputs, e.g., parsing seed files that are then stored in a different format internally and in the corpus (e.g., parsing source code into an AST and then doing AST mutations).
A fuzzer is now constructed with FUZZER::new once and then cloned for every core. As a consequence fuzzers are now Clone + Send. This allows for several patterns:
Custom shared state across all cores, e.g., for custom metadata.
Performing costly initialization only once (e.g., parsing a system call definition file).
Fuzzer::load_seed_input
to allow additional or different handling of seed inputs, e.g., parsing seed files that are then stored in a different format internally and in the corpus (e.g., parsing source code into an AST and then doing AST mutations).FUZZER::new
once and then cloned for every core. As a consequence fuzzers are nowClone + Send
. This allows for several patterns: