From 5f94d70d592bc6fddf6aa181fecbbcc587039f94 Mon Sep 17 00:00:00 2001 From: tokatoka Date: Wed, 5 May 2021 08:32:46 +0900 Subject: [PATCH 1/2] add append/discard_metadata for and/or/not feedback --- libafl/src/feedbacks/mod.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/libafl/src/feedbacks/mod.rs b/libafl/src/feedbacks/mod.rs index a50d3975348..4118d86fcf1 100644 --- a/libafl/src/feedbacks/mod.rs +++ b/libafl/src/feedbacks/mod.rs @@ -80,6 +80,18 @@ where let b = self.second.is_interesting(input, observers, exit_kind)?; Ok(a && b) } + + #[inline] + fn append_metadata(&mut self, testcase: &mut Testcase) -> Result<(), Error> { + self.first.append_metadata(testcase)?; + self.first.append_metadata(testcase) + } + + #[inline] + fn discard_metadata(&mut self, input: &I) -> Result<(), Error> { + self.first.discard_metadata(input)?; + self.first.discard_metadata(input) + } } impl Named for AndFeedback @@ -143,6 +155,18 @@ where let b = self.second.is_interesting(input, observers, exit_kind)?; Ok(a || b) } + + #[inline] + fn append_metadata(&mut self, testcase: &mut Testcase) -> Result<(), Error> { + self.first.append_metadata(testcase)?; + self.first.append_metadata(testcase) + } + + #[inline] + fn discard_metadata(&mut self, input: &I) -> Result<(), Error> { + self.first.discard_metadata(input)?; + self.first.discard_metadata(input) + } } impl Named for OrFeedback @@ -201,6 +225,16 @@ where { Ok(!self.first.is_interesting(input, observers, exit_kind)?) } + + #[inline] + fn append_metadata(&mut self, testcase: &mut Testcase) -> Result<(), Error> { + self.first.append_metadata(testcase) + } + + #[inline] + fn discard_metadata(&mut self, input: &I) -> Result<(), Error> { + self.first.discard_metadata(input) + } } impl Named for NotFeedback From 5e578d5d657dda38d4d9e91dd13e77a8f36842f9 Mon Sep 17 00:00:00 2001 From: tokatoka Date: Wed, 5 May 2021 08:39:22 +0900 Subject: [PATCH 2/2] fix --- libafl/src/feedbacks/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libafl/src/feedbacks/mod.rs b/libafl/src/feedbacks/mod.rs index 4118d86fcf1..c75fec15443 100644 --- a/libafl/src/feedbacks/mod.rs +++ b/libafl/src/feedbacks/mod.rs @@ -84,13 +84,13 @@ where #[inline] fn append_metadata(&mut self, testcase: &mut Testcase) -> Result<(), Error> { self.first.append_metadata(testcase)?; - self.first.append_metadata(testcase) + self.second.append_metadata(testcase) } #[inline] fn discard_metadata(&mut self, input: &I) -> Result<(), Error> { self.first.discard_metadata(input)?; - self.first.discard_metadata(input) + self.second.discard_metadata(input) } } @@ -159,13 +159,13 @@ where #[inline] fn append_metadata(&mut self, testcase: &mut Testcase) -> Result<(), Error> { self.first.append_metadata(testcase)?; - self.first.append_metadata(testcase) + self.second.append_metadata(testcase) } #[inline] fn discard_metadata(&mut self, input: &I) -> Result<(), Error> { self.first.discard_metadata(input)?; - self.first.discard_metadata(input) + self.second.discard_metadata(input) } }