diff --git a/libafl/src/executors/command.rs b/libafl/src/executors/command.rs index ea0e3885a4..fca9f6e6cf 100644 --- a/libafl/src/executors/command.rs +++ b/libafl/src/executors/command.rs @@ -212,7 +212,7 @@ where pub fn from_cmd_with_file
(
cmd: &Command,
debug_child: bool,
- mut observers: OT,
+ observers: OT,
path: P,
) -> Result,
diff --git a/libafl/src/executors/differential.rs b/libafl/src/executors/differential.rs
index a46bd9b9fa..4e24b4d114 100644
--- a/libafl/src/executors/differential.rs
+++ b/libafl/src/executors/differential.rs
@@ -141,13 +141,13 @@ where
/// Returns true if a `stdout` observer was added to the list
#[inline]
- fn observes_stdout(&mut self) -> bool {
- self.primary.as_mut().observes_stdout() || self.secondary.as_mut().observes_stdout()
+ fn observes_stdout(&self) -> bool {
+ self.primary.as_ref().observes_stdout() || self.secondary.as_ref().observes_stdout()
}
/// Returns true if a `stderr` observer was added to the list
#[inline]
- fn observes_stderr(&mut self) -> bool {
- self.primary.as_mut().observes_stderr() || self.secondary.as_mut().observes_stderr()
+ fn observes_stderr(&self) -> bool {
+ self.primary.as_ref().observes_stderr() || self.secondary.as_ref().observes_stderr()
}
/// Runs `observe_stdout` for all stdout observers in the list
diff --git a/libafl/src/observers/mod.rs b/libafl/src/observers/mod.rs
index 3eaedc1bdb..8702187c64 100644
--- a/libafl/src/observers/mod.rs
+++ b/libafl/src/observers/mod.rs
@@ -93,12 +93,12 @@ where
/// If this observer observes `stdout`
#[inline]
- fn observes_stdout(&mut self) -> bool {
+ fn observes_stdout(&self) -> bool {
false
}
/// If this observer observes `stderr`
#[inline]
- fn observes_stderr(&mut self) -> bool {
+ fn observes_stderr(&self) -> bool {
false
}
@@ -107,6 +107,7 @@ where
#[inline]
#[allow(unused_variables)]
fn observe_stdout(&mut self, stdout: &str) {}
+
/// React to new `stderr`
/// To use this, always return `true` from `observes_stderr`
#[inline]
@@ -149,9 +150,9 @@ where
) -> Result<(), Error>;
/// Returns true if a `stdout` observer was added to the list
- fn observes_stdout(&mut self) -> bool;
+ fn observes_stdout(&self) -> bool;
/// Returns true if a `stderr` observer was added to the list
- fn observes_stderr(&mut self) -> bool;
+ fn observes_stderr(&self) -> bool;
/// Runs `observe_stdout` for all stdout observers in the list
fn observe_stdout(&mut self, stdout: &str);
@@ -191,12 +192,13 @@ where
/// Returns true if a `stdout` observer was added to the list
#[inline]
- fn observes_stdout(&mut self) -> bool {
+ fn observes_stdout(&self) -> bool {
false
}
+
/// Returns true if a `stderr` observer was added to the list
#[inline]
- fn observes_stderr(&mut self) -> bool {
+ fn observes_stderr(&self) -> bool {
false
}
@@ -204,6 +206,7 @@ where
#[inline]
#[allow(unused_variables)]
fn observe_stdout(&mut self, stdout: &str) {}
+
/// Runs `observe_stderr` for all stderr observers in the list
#[inline]
#[allow(unused_variables)]
@@ -248,12 +251,13 @@ where
/// Returns true if a `stdout` observer was added to the list
#[inline]
- fn observes_stdout(&mut self) -> bool {
+ fn observes_stdout(&self) -> bool {
self.0.observes_stdout() || self.1.observes_stdout()
}
+
/// Returns true if a `stderr` observer was added to the list
#[inline]
- fn observes_stderr(&mut self) -> bool {
+ fn observes_stderr(&self) -> bool {
self.0.observes_stderr() || self.1.observes_stderr()
}
@@ -261,10 +265,13 @@ where
#[inline]
fn observe_stdout(&mut self, stdout: &str) {
self.0.observe_stdout(stdout);
+ self.1.observe_stdout(stdout);
}
+
/// Runs `observe_stderr` for all stderr observers in the list
#[inline]
fn observe_stderr(&mut self, stderr: &str) {
+ self.0.observe_stderr(stderr);
self.1.observe_stderr(stderr);
}
}
@@ -974,12 +981,12 @@ pub mod pybind {
// TODO: expose stdout/stderr to python
#[inline]
- fn observes_stdout(&mut self) -> bool {
+ fn observes_stdout(&self) -> bool {
false
}
#[inline]
- fn observes_stderr(&mut self) -> bool {
+ fn observes_stderr(&self) -> bool {
false
}
diff --git a/libafl/src/observers/stacktrace.rs b/libafl/src/observers/stacktrace.rs
index e3585648ff..e228b38880 100644
--- a/libafl/src/observers/stacktrace.rs
+++ b/libafl/src/observers/stacktrace.rs
@@ -264,7 +264,7 @@ where
/// Do nothing on new `stderr`
#[inline]
- fn observes_stderr(&mut self) -> bool {
+ fn observes_stderr(&self) -> bool {
true
}
diff --git a/libafl/src/observers/stdio.rs b/libafl/src/observers/stdio.rs
index 7ef35003a7..ca046781aa 100644
--- a/libafl/src/observers/stdio.rs
+++ b/libafl/src/observers/stdio.rs
@@ -32,9 +32,10 @@ where
S: UsesInput,
{
#[inline]
- fn observes_stdout(&mut self) -> bool {
+ fn observes_stdout(&self) -> bool {
true
}
+
/// React to new `stdout`
fn observe_stdout(&mut self, stdout: &str) {
self.stdout = Some(stdout.into());
@@ -71,11 +72,11 @@ where
S: UsesInput,
{
#[inline]
- fn observes_stderr(&mut self) -> bool {
+ fn observes_stderr(&self) -> bool {
true
}
- /// Do nothing on new `stderr`
+ /// React to new `stderr`
fn observe_stderr(&mut self, stderr: &str) {
self.stderr = Some(stderr.into());
}