diff --git a/libafl/src/observers/cmp.rs b/libafl/src/observers/cmp.rs index 79b2025588..4e011fd228 100644 --- a/libafl/src/observers/cmp.rs +++ b/libafl/src/observers/cmp.rs @@ -5,7 +5,7 @@ use alloc::{ vec::Vec, }; -use serde::{de::DeserializeOwned, Deserialize, Serialize}; +use serde::{de::DeserializeOwned, Deserialize, Serialize, Serializer}; use crate::{ bolts::{ownedref::OwnedRefMut, tuples::Named, AsSlice}, @@ -45,13 +45,24 @@ impl CmpValues { } /// A state metadata holding a list of values logged from comparisons -#[derive(Default, Serialize, Deserialize)] +#[derive(Default, Deserialize)] pub struct CmpValuesMetadata { /// A `list` of values. #[serde(skip)] pub list: Vec, } +/// Implement an empty serializer as we do not need to keep this metadata in State after a restore +impl Serialize for CmpValuesMetadata { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + let list: Vec = vec![]; + list.serialize(serializer) + } +} + crate::impl_serdeany!(CmpValuesMetadata); impl AsSlice for CmpValuesMetadata {