sync libfuzzer clone

This commit is contained in:
Andrea Fioraldi 2020-11-26 12:28:31 +01:00
parent 2dc044b65d
commit 933e8588ee
2 changed files with 15 additions and 8 deletions

View File

@ -38,7 +38,7 @@ fn harness<I>(_executor: &dyn Executor<I>, buf: &[u8]) -> ExitKind {
pub extern "C" fn afl_libfuzzer_main() { pub extern "C" fn afl_libfuzzer_main() {
let mut rand = StdRand::new(0); let mut rand = StdRand::new(0);
let corpus = InMemoryCorpus::new(); let mut corpus = InMemoryCorpus::new();
let mut generator = RandPrintablesGenerator::new(32); let mut generator = RandPrintablesGenerator::new(32);
let mut events = LoggerEventManager::new(stderr()); let mut events = LoggerEventManager::new(stderr());
@ -49,12 +49,19 @@ pub extern "C" fn afl_libfuzzer_main() {
let edges_feedback = MaxMapFeedback::new(edges_observer.clone(), MAP_SIZE); let edges_feedback = MaxMapFeedback::new(edges_observer.clone(), MAP_SIZE);
let executor = InMemoryExecutor::new(harness); let executor = InMemoryExecutor::new(harness);
let mut state = StdState::new(corpus, executor); let mut state = StdState::new(executor);
state.add_observer(edges_observer); state.add_observer(edges_observer);
state.add_feedback(Box::new(edges_feedback)); state.add_feedback(Box::new(edges_feedback));
generate_initial_inputs(&mut rand, &mut state, &mut generator, &mut events, 4) generate_initial_inputs(
.expect("Failed to load initial inputs"); &mut rand,
&mut state,
&mut corpus,
&mut generator,
&mut events,
4,
)
.expect("Failed to load initial inputs");
let mut engine = StdEngine::new(); let mut engine = StdEngine::new();
let mutator = HavocBytesMutator::new_default(); let mutator = HavocBytesMutator::new_default();
@ -62,7 +69,7 @@ pub extern "C" fn afl_libfuzzer_main() {
engine.add_stage(Box::new(stage)); engine.add_stage(Box::new(stage));
engine engine
.fuzz_loop(&mut rand, &mut state, &mut events) .fuzz_loop(&mut rand, &mut state, &mut corpus, &mut events)
.expect("Fuzzer fatal error"); .expect("Fuzzer fatal error");
#[cfg(feature = "std")] #[cfg(feature = "std")]
println!("OK"); println!("OK");

View File

@ -3,8 +3,8 @@
cargo build --release cargo build --release
make -C runtime make -C runtime
./compiler test/test.c -o test_fuzz ./compiler test/test.c -o test_fuzz.elf
./test_fuzz RUST_BACKTRACE=1 ./test_fuzz.elf
rm ./test_fuzz rm ./test_fuzz.elf