From 2a61f51a69677853e2fd1f9d94deb1950c76dc7d Mon Sep 17 00:00:00 2001 From: Alwin Berger Date: Mon, 11 Nov 2024 13:50:44 +0100 Subject: [PATCH] keep more cases when pruning, try more non-favored cases --- fuzzers/FRET/src/fuzzer.rs | 6 +++++- fuzzers/FRET/src/systemstate/report.rs | 4 ++-- libafl/src/schedulers/minimizer.rs | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/fuzzers/FRET/src/fuzzer.rs b/fuzzers/FRET/src/fuzzer.rs index f0e3661d93..77a5c15db2 100644 --- a/fuzzers/FRET/src/fuzzer.rs +++ b/fuzzers/FRET/src/fuzzer.rs @@ -478,7 +478,11 @@ let run_client = |state: Option<_>, mut mgr, _core_id| { #[cfg(feature = "sched_afl",)] let scheduler = TimeMaximizerCorpusScheduler::new(&edges_observer,TimeProbMassScheduler::new()); #[cfg(feature = "sched_stg")] - let scheduler = GraphMaximizerCorpusScheduler::non_metadata_removing(&stg_coverage_observer,TimeProbMassScheduler::new()); + let mut scheduler = GraphMaximizerCorpusScheduler::non_metadata_removing(&stg_coverage_observer,TimeProbMassScheduler::new()); + #[cfg(feature = "sched_stg")] + { + scheduler.skip_non_favored_prob = 0.8; + } #[cfg(feature = "sched_genetic")] let scheduler = GenerationScheduler::new(); diff --git a/fuzzers/FRET/src/systemstate/report.rs b/fuzzers/FRET/src/systemstate/report.rs index 6d9893f999..0b9733acd4 100644 --- a/fuzzers/FRET/src/systemstate/report.rs +++ b/fuzzers/FRET/src/systemstate/report.rs @@ -105,8 +105,8 @@ where const PRUNE_MAX_KEEP: usize = 1000; const PRUNE_MIN_KEEP: usize = 100; let cc = state.corpus().count(); - let to_keep = usize::min(vc*MULTI, PRUNE_MIN_KEEP); - let activate = cc > PRUNE_MAX_KEEP || cc > vc*PRUNE_THRESHOLD; + let to_keep = usize::max(vc*MULTI, PRUNE_MIN_KEEP); + let activate = cc > PRUNE_MAX_KEEP || cc > usize::max(vc*PRUNE_THRESHOLD, PRUNE_MIN_KEEP*2); if activate { println!("Pruning corpus, keeping {} / {}", to_keep, cc); let corpus = state.corpus_mut(); diff --git a/libafl/src/schedulers/minimizer.rs b/libafl/src/schedulers/minimizer.rs index 320780e466..9d5615ba54 100644 --- a/libafl/src/schedulers/minimizer.rs +++ b/libafl/src/schedulers/minimizer.rs @@ -82,7 +82,7 @@ impl Default for TopRatedsMetadata { #[derive(Debug, Clone)] pub struct MinimizerScheduler { base: CS, - skip_non_favored_prob: f64, + pub skip_non_favored_prob: f64, remove_metadata: bool, phantom: PhantomData<(F, M, O)>, }