diff --git a/fuzzers/frida_libpng/Cargo.toml b/fuzzers/frida_libpng/Cargo.toml index 347724ca56..2fd07e7c74 100644 --- a/fuzzers/frida_libpng/Cargo.toml +++ b/fuzzers/frida_libpng/Cargo.toml @@ -22,7 +22,7 @@ frida = ["frida-gum", "frida-gum-sys"] cc = { version = "1.0", features = ["parallel"] } num_cpus = "1.0" -[dependencies] +[target.'cfg(unix)'.dependencies] libafl = { path = "../../libafl/" } #frida-gum = { path = "../../../frida-rust/frida-gum", version = "0.2.3", optional = true, features = ["auto-download", "event-sink", "invocation-listener"] } #frida-gum-sys = { path = "../../../frida-rust/frida-gum-sys", version = "0.2.2", optional = true, features = ["auto-download", "event-sink", "invocation-listener"] } @@ -34,6 +34,6 @@ libloading = "0.7.0" [[example]] name = "frida_libpng" -path = "./src/fuzzer.rs" +path = "./src/main.rs" test = false bench = false diff --git a/fuzzers/frida_libpng/build.rs b/fuzzers/frida_libpng/build.rs index 94e44cd8f4..007a54139d 100644 --- a/fuzzers/frida_libpng/build.rs +++ b/fuzzers/frida_libpng/build.rs @@ -11,7 +11,7 @@ const LIBPNG_URL: &str = fn main() { if cfg!(windows) { - println!("cargo:warning=Skipping libpng example on Windows"); + println!("cargo:warning=Skipping libpng frida example on Windows"); exit(0); } diff --git a/fuzzers/libfuzzer_libpng/src/fuzzer.rs b/fuzzers/libfuzzer_libpng/src/fuzzer.rs index 32531944b5..163a4c43ed 100644 --- a/fuzzers/libfuzzer_libpng/src/fuzzer.rs +++ b/fuzzers/libfuzzer_libpng/src/fuzzer.rs @@ -1,6 +1,7 @@ //! A libfuzzer-like fuzzer with llmp-multithreading support and restarts //! The example harness is built for libpng. +#[cfg(unix)] use core::time::Duration; use std::{env, path::PathBuf}; diff --git a/fuzzers/libfuzzer_libpng_cmpalloc/src/fuzzer.rs b/fuzzers/libfuzzer_libpng_cmpalloc/src/fuzzer.rs index c4f26cabb4..c78a6d88d4 100644 --- a/fuzzers/libfuzzer_libpng_cmpalloc/src/fuzzer.rs +++ b/fuzzers/libfuzzer_libpng_cmpalloc/src/fuzzer.rs @@ -23,6 +23,7 @@ use libafl::{ Error, }; +#[cfg(unix)] const MAP_SIZE: usize = 16 * 1024; /// We will interact with a C++ target, so use external c functionality diff --git a/libafl/src/bolts/os/windows_exceptions.rs b/libafl/src/bolts/os/windows_exceptions.rs index ed43a04c00..d4796f0397 100644 --- a/libafl/src/bolts/os/windows_exceptions.rs +++ b/libafl/src/bolts/os/windows_exceptions.rs @@ -14,7 +14,7 @@ use std::os::raw::{c_long, c_void}; use num_enum::{IntoPrimitive, TryFromPrimitive}; -const EXCEPTION_CONTINUE_EXECUTION: c_long = -1; +//const EXCEPTION_CONTINUE_EXECUTION: c_long = -1; //const EXCEPTION_CONTINUE_SEARCH: c_long = 0; const EXCEPTION_EXECUTE_HANDLER: c_long = 1; diff --git a/libafl/src/executors/mod.rs b/libafl/src/executors/mod.rs index a5ee692469..705b317d33 100644 --- a/libafl/src/executors/mod.rs +++ b/libafl/src/executors/mod.rs @@ -3,6 +3,7 @@ pub mod inprocess; pub use inprocess::InProcessExecutor; pub mod timeout; +#[cfg(unix)] pub use timeout::TimeoutExecutor; #[cfg(feature = "runtime")] pub mod runtime; diff --git a/libafl/src/executors/timeout.rs b/libafl/src/executors/timeout.rs index 6acb753032..dd88613455 100644 --- a/libafl/src/executors/timeout.rs +++ b/libafl/src/executors/timeout.rs @@ -1,7 +1,9 @@ //! A TimeoutExecutor set a timeout before each target run +#[cfg(unix)] use core::{marker::PhantomData, time::Duration}; +#[cfg(unix)] use crate::{ bolts::tuples::Named, events::EventManager, @@ -39,6 +41,7 @@ extern "C" { const ITIMER_REAL: c_int = 0; /// The timeout excutor is a wrapper that set a timeout before each run +#[cfg(unix)] pub struct TimeoutExecutor where E: Executor + HasObservers, @@ -50,6 +53,7 @@ where phantom: PhantomData<(I, OT)>, } +#[cfg(unix)] impl Named for TimeoutExecutor where E: Executor + HasObservers, @@ -61,6 +65,7 @@ where } } +#[cfg(unix)] impl HasObservers for TimeoutExecutor where E: Executor + HasObservers, @@ -78,6 +83,7 @@ where } } +#[cfg(unix)] impl TimeoutExecutor where E: Executor + HasObservers, @@ -93,6 +99,7 @@ where } } +#[cfg(unix)] impl Executor for TimeoutExecutor where E: Executor + HasObservers,