From ff759e2ca7569545d08d08316098a6dadf09fe45 Mon Sep 17 00:00:00 2001 From: toka Date: Mon, 15 Mar 2021 10:20:13 +0900 Subject: [PATCH] add with_timeout constructor for Observer --- libafl/src/executors/inprocess.rs | 4 ---- libafl/src/observers/mod.rs | 22 +++++++++++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/libafl/src/executors/inprocess.rs b/libafl/src/executors/inprocess.rs index 638eab008e..d68ffe09df 100644 --- a/libafl/src/executors/inprocess.rs +++ b/libafl/src/executors/inprocess.rs @@ -71,11 +71,7 @@ where #[inline] fn run_target(&mut self, input: &I) -> Result { let bytes = input.target_bytes(); - - let ret = (self.harness_fn)(self, bytes.as_slice()); - - #[cfg(unix)] unsafe { write_volatile( diff --git a/libafl/src/observers/mod.rs b/libafl/src/observers/mod.rs index df1d076127..8c3fc688da 100644 --- a/libafl/src/observers/mod.rs +++ b/libafl/src/observers/mod.rs @@ -128,6 +128,15 @@ impl TimeObserver { } } + pub fn with_timeout(name: &'static str, tmout: u64) -> Self { + Self { + name: name.to_string(), + start_time: Duration::from_secs(0), + last_runtime: None, + exec_tmout: Some(Duration::from_secs(tmout)), + } + } + pub fn last_runtime(&self) -> &Option { &self.last_runtime } @@ -135,22 +144,21 @@ impl TimeObserver { impl Observer for TimeObserver { fn pre_exec(&mut self) -> Result<(), Error> { - #[cfg(unix)] match self.exec_tmout { Some(exec_tmout) => unsafe { let milli_sec = exec_tmout.as_millis() as i64; - let it_value = Timeval{ + let it_value = Timeval { tv_sec: milli_sec / 1000, tv_usec: milli_sec % 1000, }; - let it_interval = Timeval{ + let it_interval = Timeval { tv_sec: 0, tv_usec: 0, }; setitimer( ITIMER_REAL, - &mut Itimerval{ + &mut Itimerval { it_interval, it_value, }, @@ -171,17 +179,17 @@ impl Observer for TimeObserver { #[cfg(unix)] match self.exec_tmout { Some(_) => unsafe { - let it_value = Timeval{ + let it_value = Timeval { tv_sec: 0, tv_usec: 0, }; - let it_interval = Timeval{ + let it_interval = Timeval { tv_sec: 0, tv_usec: 0, }; setitimer( ITIMER_REAL, - &mut Itimerval{ + &mut Itimerval { it_interval, it_value, },