From fd6271fa356f3addda6db33f37db7e42a2c99bbc Mon Sep 17 00:00:00 2001 From: "Dongjia \"toka\" Zhang" Date: Wed, 29 Jan 2025 13:55:38 +0100 Subject: [PATCH] Delete useless trait bounds from share_objectives feature (#2908) * fix * a --- libafl/src/events/llmp/mod.rs | 21 +++++++++------------ libafl/src/events/llmp/restarting.rs | 21 ++++++++++----------- libafl/src/events/tcp.rs | 23 +++++++---------------- 3 files changed, 26 insertions(+), 39 deletions(-) diff --git a/libafl/src/events/llmp/mod.rs b/libafl/src/events/llmp/mod.rs index 20655536d6..cee3ce1cd1 100644 --- a/libafl/src/events/llmp/mod.rs +++ b/libafl/src/events/llmp/mod.rs @@ -14,8 +14,6 @@ use libafl_bolts::{ }; use serde::{de::DeserializeOwned, Serialize}; -#[cfg(feature = "share_objectives")] -use crate::corpus::{Corpus, Testcase}; use crate::{ events::{Event, EventFirer}, fuzzer::EvaluatorObservers, @@ -262,7 +260,6 @@ where ) -> Result<(), Error> where ICB: InputConverter, - S: HasCurrentTestcase + HasSolutions, Z: EvaluatorObservers, { match event { @@ -297,17 +294,17 @@ where return Ok(()); }; - let converted_input = converter.convert(input)?; - let mut testcase = Testcase::from(converted_input); - testcase.set_parent_id_optional(*state.corpus().current()); + let res = fuzzer.evaluate_input_with_observers( + state, + executor, + manager, + converter.convert(input)?, + false, + )?; - if let Ok(mut tc) = state.current_testcase_mut() { - tc.found_objective(); + if let Some(item) = res.1 { + log::info!("Added received Objective as item #{item}"); } - - state.solutions_mut().add(testcase)?; - log::info!("Added received Objective to Corpus"); - Ok(()) } Event::Stop => Ok(()), diff --git a/libafl/src/events/llmp/restarting.rs b/libafl/src/events/llmp/restarting.rs index 0ed177b44f..512d21ddd4 100644 --- a/libafl/src/events/llmp/restarting.rs +++ b/libafl/src/events/llmp/restarting.rs @@ -47,8 +47,6 @@ use libafl_bolts::{ use serde::{de::DeserializeOwned, Serialize}; use typed_builder::TypedBuilder; -#[cfg(feature = "share_objectives")] -use crate::corpus::{Corpus, Testcase}; #[cfg(feature = "llmp_compression")] use crate::events::COMPRESS_THRESHOLD; #[cfg(all(unix, not(miri)))] @@ -575,7 +573,7 @@ where event: Event, ) -> Result<(), Error> where - S: HasImported + HasSolutions + HasCurrentTestcase + Stoppable, + S: HasImported + Stoppable, EMH: EventManagerHooksTuple, I: Input, E: HasObservers, @@ -623,16 +621,17 @@ where #[cfg(feature = "share_objectives")] Event::Objective { input, .. } => { - log::debug!("Received new Objective"); - let mut testcase = Testcase::from(input); - testcase.set_parent_id_optional(*state.corpus().current()); + #[cfg(feature = "std")] + log::debug!("[{}] Received new Objective", std::process::id()); - if let Ok(mut tc) = state.current_testcase_mut() { - tc.found_objective(); + let res = + fuzzer.evaluate_input_with_observers(state, executor, self, input, false)?; + if let Some(item) = res.1 { + *state.imported_mut() += 1; + log::debug!("Added received Objective {evt_name} as item #{item}"); + } else { + log::debug!("Objective {evt_name} was discarded"); } - - state.solutions_mut().add(testcase)?; - log::info!("Added received Objective to Corpus"); } Event::Stop => { state.request_stop(); diff --git a/libafl/src/events/tcp.rs b/libafl/src/events/tcp.rs index 5dc36b5a7d..25dc6a550c 100644 --- a/libafl/src/events/tcp.rs +++ b/libafl/src/events/tcp.rs @@ -39,8 +39,6 @@ use tokio::{ use typed_builder::TypedBuilder; use super::{std_maybe_report_progress, std_report_progress, AwaitRestartSafe, SendExiting}; -#[cfg(feature = "share_objectives")] -use crate::corpus::{Corpus, Testcase}; #[cfg(all(unix, not(miri)))] use crate::events::EVENTMGR_SIGHANDLER_STATE; use crate::{ @@ -565,12 +563,7 @@ impl Drop for TcpEventManager { impl TcpEventManager where EMH: EventManagerHooksTuple, - S: HasExecutions - + HasMetadata - + HasImported - + HasSolutions - + HasCurrentTestcase - + Stoppable, + S: HasExecutions + HasMetadata + HasImported + Stoppable, { /// Write the client id for a client `EventManager` to env vars pub fn to_env(&self, env_name: &str) { @@ -623,16 +616,14 @@ where #[cfg(feature = "share_objectives")] Event::Objective { input, .. } => { - log::debug!("Received new Objective"); - let mut testcase = Testcase::from(input); - testcase.set_parent_id_optional(*state.corpus().current()); + log::info!("Received new Objective"); - if let Ok(mut tc) = state.current_testcase_mut() { - tc.found_objective(); + let res = + fuzzer.evaluate_input_with_observers(state, executor, self, input, false)?; + if let Some(item) = res.1 { + *state.imported_mut() += 1; + log::info!("Added received Testcase as item #{item}"); } - - state.solutions_mut().add(testcase)?; - log::info!("Added received Objective to Corpus"); } Event::Stop => { state.request_stop();