sync libfuzzer clone
This commit is contained in:
parent
2dc044b65d
commit
933e8588ee
@ -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,11 +49,18 @@ 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(
|
||||||
|
&mut rand,
|
||||||
|
&mut state,
|
||||||
|
&mut corpus,
|
||||||
|
&mut generator,
|
||||||
|
&mut events,
|
||||||
|
4,
|
||||||
|
)
|
||||||
.expect("Failed to load initial inputs");
|
.expect("Failed to load initial inputs");
|
||||||
|
|
||||||
let mut engine = StdEngine::new();
|
let mut engine = StdEngine::new();
|
||||||
@ -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");
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user