From aba83dfb6f4c2204a2c622db509b1d902df98a44 Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Fri, 6 Oct 2023 14:33:01 +0200 Subject: [PATCH] minor fixes --- fuzzers/FRET/src/mutational.rs | 4 ++-- fuzzers/FRET/src/systemstate/graph.rs | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/fuzzers/FRET/src/mutational.rs b/fuzzers/FRET/src/mutational.rs index f2f4f16a9a..552ab9b7fe 100644 --- a/fuzzers/FRET/src/mutational.rs +++ b/fuzzers/FRET/src/mutational.rs @@ -118,10 +118,10 @@ where let m = interrupt_offsets[0..num_interrupts].iter().any(|x| (curr.start_tick..curr.end_tick).contains(&(*x as u64))); if m { marks.push((curr, i, 1)); - // println!("1: {}",curr.current_task.task_name); + // println!("1: {}",curr.current_task.0.task_name); } else if last_m { marks.push((curr, i, 2)); - // println!("2: {}",curr.current_task.task_name); + // println!("2: {}",curr.current_task.0.task_name); } else { marks.push((curr, i, 0)); } diff --git a/fuzzers/FRET/src/systemstate/graph.rs b/fuzzers/FRET/src/systemstate/graph.rs index 64c28599d9..09e55fc752 100644 --- a/fuzzers/FRET/src/systemstate/graph.rs +++ b/fuzzers/FRET/src/systemstate/graph.rs @@ -15,6 +15,7 @@ use libafl::state::HasCorpus; use libafl::state::HasSolutions; use libafl::state::HasRand; use crate::worst::MaxExecsLenFavFactor; +use crate::worst::MaxTimeFavFactor; use libafl::schedulers::MinimizerScheduler; use libafl_bolts::HasRefCnt; use libafl_bolts::AsSlice; @@ -164,7 +165,7 @@ impl HasRefCnt for SysGraphMetadata { libafl_bolts::impl_serdeany!(SysGraphMetadata); pub type GraphMaximizerCorpusScheduler = - MinimizerScheduler::State>,SysGraphMetadata>; + MinimizerScheduler::State>,SysGraphMetadata>; //============================= Graph Feedback @@ -214,11 +215,10 @@ impl SysGraphFeedbackState let mut trace : Vec = vec![current_index]; for n in list { let mut matching : Option = None; - for i in self.graph.neighbors_directed(current_index, Direction::Outgoing) { + for i in self.graph.node_indices() { let tmp = &self.graph[i]; if n == &tmp.base { matching = Some(i); - current_index = i; break; } } @@ -226,16 +226,20 @@ impl SysGraphFeedbackState None => { novel = true; let j = self.graph.add_node(SysGraphNode::from(n.clone(),input.clone())); - self.graph.add_edge(current_index, j, ()); + self.graph.update_edge(current_index, j, ()); current_index = j; }, Some(i) => { novel |= self.graph[i].unite_interesting(&n, input); + self.graph.update_edge(current_index, i, ()); + current_index = i; } } trace.push(current_index); } - self.graph.update_edge(current_index, self.exit, ()); // every path ends in the exit noded + if current_index != self.entrypoint { + self.graph.update_edge(current_index, self.exit, ()); // every path ends in the exit noded + } return (novel, trace); } } @@ -315,7 +319,7 @@ where /// Append to the testcase the generated metadata in case of a new corpus item #[inline] - fn append_metadata(&mut self, _state: &mut S, observers: &OT, testcase: &mut Testcase) -> Result<(), Error> { + fn append_metadata(&mut self, _state: &mut S, _observers: &OT, testcase: &mut Testcase) -> Result<(), Error> { let a = self.last_trace.take(); match a { Some(s) => testcase.metadata_map_mut().insert(SysGraphMetadata::new(s)),