Fix concolic fuzzer and add related CI tests (#559)

* fix concolic fuzzer & add related CI tests

* More cargo fmt

* More cargo fmt

* order matters
This commit is contained in:
Chaofan Shou 2022-03-26 05:51:14 -07:00 committed by GitHub
parent fee100715c
commit e20d345d99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 10 deletions

View File

@ -211,7 +211,7 @@ fn fuzz(
// The concolic observer observers the concolic shared memory map. // The concolic observer observers the concolic shared memory map.
let concolic_observer = let concolic_observer =
ConcolicObserver::new("concolic".to_string(), concolic_shmem.as_slice_mut()); ConcolicObserver::new("concolic".to_string(), concolic_shmem.as_mut_slice());
let concolic_observer_name = concolic_observer.name().to_string(); let concolic_observer_name = concolic_observer.name().to_string();
@ -242,16 +242,13 @@ fn fuzz(
use std::process::{Child, Command, Stdio}; use std::process::{Child, Command, Stdio};
#[derive(Default)] #[derive(Default, Debug)]
pub struct MyCommandConfigurator { pub struct MyCommandConfigurator {
command: Option<Command>, command: Option<Command>,
} }
impl<I> CommandConfigurator<I> for MyCommandConfigurator impl CommandConfigurator for MyCommandConfigurator {
where fn spawn_child<I: Input + HasTargetBytes>(&mut self, input: &I) -> Result<Child, Error> {
I: HasTargetBytes + Input,
{
fn spawn_child(&mut self, input: &I) -> Result<Child, Error> {
input.to_file("cur_input")?; input.to_file("cur_input")?;
Ok(Command::new("./target_symcc.out") Ok(Command::new("./target_symcc.out")

View File

@ -5,7 +5,7 @@
use symcc_runtime::{ use symcc_runtime::{
export_runtime, export_runtime,
filter::{NoFloat, CallStackCoverage}, filter::{CallStackCoverage, NoFloat},
tracing::{self, StdShMemMessageFileWriter}, tracing::{self, StdShMemMessageFileWriter},
Runtime, Runtime,
}; };

View File

@ -7,9 +7,14 @@ cd "$SCRIPT_DIR/.."
fuzzers=$(find ./fuzzers -maxdepth 1 -type d) fuzzers=$(find ./fuzzers -maxdepth 1 -type d)
backtrace_fuzzers=$(find ./fuzzers/backtrace_baby_fuzzers -maxdepth 1 -type d) backtrace_fuzzers=$(find ./fuzzers/backtrace_baby_fuzzers -maxdepth 1 -type d)
extra_fuzzer_and_runtime="
./fuzzers/libfuzzer_stb_image_concolic/runtime
./fuzzers/libfuzzer_stb_image_concolic/fuzzer
"
libafl=$(pwd) libafl=$(pwd)
for fuzzer in $(echo $fuzzers $backtrace_fuzzers); for fuzzer in $(echo $fuzzers $backtrace_fuzzers $extra_fuzzer_and_runtime);
do do
cd $fuzzer cd $fuzzer
# Clippy checks # Clippy checks