From 1486c204eb71dbc6d1ab2cf8b52976a3a71704bc Mon Sep 17 00:00:00 2001 From: Dominik Maier Date: Thu, 10 Nov 2022 09:39:29 +0100 Subject: [PATCH] Remove unused stage stub (#882) * GetDeps Stage * removed getdeps stage --- libafl/src/stages/getdeps.rs | 160 ----------------------------------- 1 file changed, 160 deletions(-) delete mode 100644 libafl/src/stages/getdeps.rs diff --git a/libafl/src/stages/getdeps.rs b/libafl/src/stages/getdeps.rs deleted file mode 100644 index 2d9352f1b3..0000000000 --- a/libafl/src/stages/getdeps.rs +++ /dev/null @@ -1,160 +0,0 @@ -//! The tracing stage can trace the target and enrich a testcase with metadata, for example for `CmpLog`. - -use alloc::{ - string::{String, ToString}, - vec::Vec, -}; -use core::{fmt::Debug, marker::PhantomData}; - -use hashbrown::HashSet; -use serde::{Deserialize, Serialize}; - -#[cfg(feature = "introspection")] -use crate::monitors::PerfFeature; -use crate::{ - bolts::AsSlice, - corpus::Corpus, - executors::{Executor, HasObservers}, - feedbacks::map::MapNoveltiesMetadata, - inputs::{GeneralizedInput, GeneralizedItem, HasBytesVec}, - mark_feature_time, - observers::{MapObserver, ObserversTuple}, - stages::Stage, - start_timer, - state::{HasClientPerfMonitor, HasCorpus, HasExecutions, HasMetadata}, - Error, -}; - -const MAX_GENERALIZED_LEN: usize = 8192; - -/// A state metadata holding the set of indexes related to the generalized corpus entries -#[derive(Debug, Default, Serialize, Deserialize)] -pub struct GeneralizedIndexesMetadata { - /// The set of indexes - pub indexes: HashSet, -} - -crate::impl_serdeany!(GeneralizedIndexesMetadata); - -impl GeneralizedIndexesMetadata { - /// Create the metadata - #[must_use] - pub fn new() -> Self { - Self::default() - } -} - -fn increment_by_offset(_list: &[Option], idx: usize, off: u8) -> usize { - idx + 1 + off as usize -} - -fn find_next_char(list: &[Option], mut idx: usize, ch: u8) -> usize { - while idx < list.len() { - if list[idx] == Some(ch) { - return idx + 1; - } - idx += 1; - } - idx -} - -/// A stage that runs a tracer executor -#[derive(Clone, Debug)] -pub struct GetDepsStage -where - O: MapObserver, - OT: ObserversTuple, - S: HasClientPerfMonitor + HasExecutions + HasMetadata + HasCorpus, -{ - map_observer_name: String, - #[allow(clippy::type_complexity)] - phantom: PhantomData<(EM, O, OT, S, Z)>, -} - -impl Stage for GetDepsStage -where - O: MapObserver, - E: Executor + HasObservers, - OT: ObserversTuple, - S: HasClientPerfMonitor + HasExecutions + HasMetadata + HasCorpus, -{ - #[inline] - #[allow(clippy::too_many_lines)] - fn perform( - &mut self, - fuzzer: &mut Z, - executor: &mut E, - state: &mut S, - manager: &mut EM, - corpus_idx: usize, - ) -> Result<(), Error> { - if state - .metadata() - .get::() - .is_none() - { - state.add_metadata(GeneralizedIndexesMetadata::new()); - } - - let (mut payload, original, novelties) = { - start_timer!(state); - state.corpus().get(corpus_idx)?.borrow_mut().load_input()?; - mark_feature_time!(state, PerfFeature::GetInputFromCorpus); - let mut entry = state.corpus().get(corpus_idx)?.borrow_mut(); - let input = entry.input_mut().as_mut().unwrap(); - - if input.generalized().is_some() { - drop(entry); - state - .metadata_mut() - .get_mut::() - .unwrap() - .indexes - .insert(corpus_idx); - return Ok(()); - } - - let payload: Vec<_> = input.bytes().iter().map(|&x| Some(x)).collect(); - let original = input.clone(); - let meta = entry.metadata().get::().ok_or_else(|| { - Error::key_not_found(format!( - "MapNoveltiesMetadata needed for GetDepsStage not found in testcase #{} (check the arguments of MapFeedback::new(...))", - corpus_idx - )) - })?; - (payload, original, meta.as_slice().to_vec()) - }; - - // Do not generalized unstable inputs - if !self.verify_input(fuzzer, executor, state, manager, &novelties, &original)? { - return Ok(()); - } - - Ok(()) - } -} - -impl GetDepsStage -where - O: MapObserver, - OT: ObserversTuple, - S: HasClientPerfMonitor + HasExecutions + HasMetadata + HasCorpus, -{ - /// Create a new [`GetDepsStage`]. - #[must_use] - pub fn new(map_observer: &O) -> Self { - Self { - map_observer_name: map_observer.name().to_string(), - phantom: PhantomData, - } - } - - /// Create a new [`GetDepsStage`] from name - #[must_use] - pub fn from_name(map_observer_name: &str) -> Self { - Self { - map_observer_name: map_observer_name.to_string(), - phantom: PhantomData, - } - } -}