diff --git a/afl/src/executors/inmemory.rs b/afl/src/executors/inmemory.rs index c66ee0da1b..958b9a0378 100644 --- a/afl/src/executors/inmemory.rs +++ b/afl/src/executors/inmemory.rs @@ -133,15 +133,12 @@ where on_crash_fn: Box>, _state: &State, _corpus: &C, - _event_mgr: &EM, + _event_mgr: &mut EM, ) -> Self { - /*#[cfg(feature = "std")] + #[cfg(feature = "std")] unsafe { - CORPUS_PTR = _corpus as *const _ as *const c_void; - STATE_PTR = _state as *const _ as *const c_void; - - setup_crash_handlers(_event_manager); - }*/ + setup_crash_handlers::(_state, _corpus, _event_mgr); + } Self { harness_fn, @@ -219,7 +216,7 @@ pub mod unix_signals { utils::Rand, }; - pub unsafe extern "C" fn libaflrs_executor_inmem_handle_crash( + pub unsafe extern "C" fn libaflrs_executor_inmem_handle_crash( _sig: c_int, info: siginfo_t, _void: c_void, @@ -263,7 +260,7 @@ pub mod unix_signals { std::process::exit(139); } - pub unsafe extern "C" fn libaflrs_executor_inmem_handle_timeout( + pub unsafe extern "C" fn libaflrs_executor_inmem_handle_timeout( _sig: c_int, _info: siginfo_t, _void: c_void, @@ -305,7 +302,7 @@ pub mod unix_signals { } // TODO clearly state that manager should be static (maybe put the 'static lifetime?) - pub unsafe fn setup_crash_handlers( + pub unsafe fn setup_crash_handlers( state: &State, corpus: &C, manager: &mut EM, @@ -324,7 +321,7 @@ pub mod unix_signals { let mut sa: sigaction = mem::zeroed(); libc::sigemptyset(&mut sa.sa_mask as *mut libc::sigset_t); sa.sa_flags = SA_NODEFER | SA_SIGINFO; - sa.sa_sigaction = libaflrs_executor_inmem_handle_crash:: as usize; + sa.sa_sigaction = libaflrs_executor_inmem_handle_crash:: as usize; for (sig, msg) in &[ (SIGSEGV, "segfault"), (SIGBUS, "sigbus"), @@ -338,7 +335,7 @@ pub mod unix_signals { } } - sa.sa_sigaction = libaflrs_executor_inmem_handle_timeout:: as usize; + sa.sa_sigaction = libaflrs_executor_inmem_handle_timeout:: as usize; if sigaction(SIGUSR2, &mut sa as *mut sigaction, ptr::null_mut()) < 0 { panic!("Could not set up sigusr2 handler for timeouts"); } diff --git a/fuzzers/libfuzzer_libpng/src/mod.rs b/fuzzers/libfuzzer_libpng/src/mod.rs index 321edf9157..1c0873644c 100644 --- a/fuzzers/libfuzzer_libpng/src/mod.rs +++ b/fuzzers/libfuzzer_libpng/src/mod.rs @@ -159,7 +159,7 @@ fn fuzz(input: Option>, broker_port: u16) -> Result<(), AflError> { }), &state, &corpus, - &mgr, + &mut mgr, ); let mut engine = Engine::new(executor);