Skip to content

Commit 7633382

Browse files
authored
Remove observer from AflStatsStageBuilder (#3376)
* remove observer * mm * fix
1 parent fcb51ec commit 7633382

File tree

4 files changed

+10
-22
lines changed

4 files changed

+10
-22
lines changed

crates/libafl/src/stages/afl_stats.rs

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use libafl_bolts::{
1818
Named,
1919
core_affinity::CoreId,
2020
current_time,
21-
tuples::{Handle, Handled, MatchName},
21+
tuples::{Handle, MatchName},
2222
};
2323
use serde::{Deserialize, Serialize};
2424

@@ -29,7 +29,7 @@ use crate::{
2929
corpus::{Corpus, HasCurrentCorpusId, SchedulerTestcaseMetadata, Testcase},
3030
events::{Event, EventFirer, EventWithStats},
3131
executors::HasObservers,
32-
feedbacks::MapFeedbackMetadata,
32+
feedbacks::{HasObserverHandle, MapFeedbackMetadata},
3333
monitors::stats::{AggregatorOps, UserStats, UserStatsValue},
3434
mutators::Tokens,
3535
observers::MapObserver,
@@ -722,20 +722,15 @@ where
722722
self.report_interval = interval;
723723
self
724724
}
725-
/// Our `MapObserver`
726-
#[must_use]
727-
pub fn map_observer(mut self, map_observer: &C) -> Self {
728-
self.map_observer_handle = Some(map_observer.handle());
729-
self
730-
}
731725

732726
/// map name to check the filled count
733727
#[must_use]
734-
pub fn map_name<F>(mut self, map_feedback: &F) -> Self
728+
pub fn map_feedback<F>(mut self, map_feedback: &F) -> Self
735729
where
736-
F: Named,
730+
F: Named + HasObserverHandle<Observer = C>,
737731
{
738732
self.map_name = Some(map_feedback.name().to_string());
733+
self.map_observer_handle = Some(map_feedback.observer_handle().clone());
739734
self
740735
}
741736

@@ -804,11 +799,8 @@ where
804799
/// No `stats_file_path` provieded
805800
#[allow(clippy::type_complexity)]
806801
pub fn build(self) -> Result<AflStatsStage<C, I, O>, Error> {
807-
if self.map_observer_handle.is_none() {
808-
return Err(Error::illegal_argument("Must set `map_observer`"));
809-
}
810802
let Some(map_name) = self.map_name else {
811-
return Err(Error::illegal_argument("Must set `map_name`"));
803+
return Err(Error::illegal_argument("Must set `map_feedback`"));
812804
};
813805
if let Some(ref plot_file) = self.plot_file_path {
814806
Self::create_plot_data_file(plot_file)?;

fuzzers/baby/baby_fuzzer_custom_executor/src/main.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,7 @@ pub fn main() {
8787

8888
let calibration_stage = CalibrationStage::new(&feedback);
8989
let stats_stage = AflStatsStage::builder()
90-
.map_observer(&observer)
91-
.map_name(&feedback)
90+
.map_feedback(&feedback)
9291
.build()
9392
.unwrap();
9493

fuzzers/binary_only/qemu_launcher/src/instance.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,15 +187,13 @@ where
187187
let stats_stage = IfStage::new(
188188
|_, _, _, _| Ok(self.options.tui),
189189
tuple_list!(AflStatsStage::builder()
190-
.map_observer(&edges_observer)
191-
.map_name(&map_feedback)
190+
.map_feedback(&map_feedback)
192191
.build()?),
193192
);
194193
let stats_stage_cmplog = IfStage::new(
195194
|_, _, _, _| Ok(self.options.tui),
196195
tuple_list!(AflStatsStage::builder()
197-
.map_observer(&edges_observer)
198-
.map_name(&map_feedback)
196+
.map_feedback(&map_feedback)
199197
.build()?),
200198
);
201199

fuzzers/forkserver/libafl-fuzz/src/fuzzer.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,7 @@ define_run_client!(state, mgr, fuzzer_dir, core_id, opt, is_main_node, {
185185
.plot_file(fuzzer_dir.join("plot_data"))
186186
.core_id(core_id)
187187
.report_interval(Duration::from_secs(opt.stats_interval))
188-
.map_observer(&edges_observer)
189-
.map_name(&map_feedback)
188+
.map_feedback(&map_feedback)
190189
.uses_autotokens(!opt.no_autodict)
191190
.tokens(&tokens)
192191
.banner(opt.executable.display().to_string())

0 commit comments

Comments
 (0)