From ff2971068f539b096fe925130351ba5a7c6c4691 Mon Sep 17 00:00:00 2001 From: Mrmaxmeier <3913977+Mrmaxmeier@users.noreply.github.com> Date: Sun, 20 Nov 2022 09:21:16 +0100 Subject: [PATCH] mopt: seed from state rand instead of current_nanos (#902) --- libafl/src/mutators/mopt_mutator.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/libafl/src/mutators/mopt_mutator.rs b/libafl/src/mutators/mopt_mutator.rs index 6fdd4b0fe2..0dfc803a25 100644 --- a/libafl/src/mutators/mopt_mutator.rs +++ b/libafl/src/mutators/mopt_mutator.rs @@ -8,10 +8,7 @@ use core::{ use serde::{Deserialize, Serialize}; use crate::{ - bolts::{ - current_nanos, - rands::{Rand, StdRand}, - }, + bolts::rands::{Rand, StdRand}, corpus::Corpus, mutators::{ComposedByMutations, MutationResult, Mutator, MutatorsTuple, ScheduledMutator}, state::{HasCorpus, HasMetadata, HasRand, HasSolutions}, @@ -141,9 +138,9 @@ const PERIOD_PILOT_COEF: f64 = 5000.0; impl MOpt { /// Creates a new [`struct@MOpt`] instance. - pub fn new(operator_num: usize, swarm_num: usize) -> Result { + pub fn new(operator_num: usize, swarm_num: usize, rand_seed: u64) -> Result { let mut mopt = Self { - rand: StdRand::with_seed(current_nanos()), + rand: StdRand::with_seed(rand_seed), total_finds: 0, finds_until_last_swarm: 0, w_init: 0.9, @@ -537,7 +534,8 @@ where swarm_num: usize, ) -> Result { if !state.has_metadata::() { - state.add_metadata::(MOpt::new(mutations.len(), swarm_num)?); + let rand_seed = state.rand_mut().next(); + state.add_metadata::(MOpt::new(mutations.len(), swarm_num, rand_seed)?); } Ok(Self { mode: MOptMode::Pilotfuzzing,