diff --git a/fuzzers/libfuzzer/Cargo.toml b/fuzzers/libfuzzer/Cargo.toml index 33df7d86da..1687457df0 100644 --- a/fuzzers/libfuzzer/Cargo.toml +++ b/fuzzers/libfuzzer/Cargo.toml @@ -6,6 +6,10 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[features] +default = ["std"] +std = [] + [dependencies] afl = { path = "../../" } diff --git a/fuzzers/libfuzzer/src/lib.rs b/fuzzers/libfuzzer/src/lib.rs index b33f8e9f2d..85deac5a27 100644 --- a/fuzzers/libfuzzer/src/lib.rs +++ b/fuzzers/libfuzzer/src/lib.rs @@ -1,6 +1,11 @@ -use std::boxed::Box; -use std::cell::RefCell; -use std::rc::Rc; +#![cfg_attr(not(feature = "std"), no_std)] + +#[macro_use] +extern crate alloc; + +use alloc::boxed::Box; +use alloc::rc::Rc; +use core::cell::RefCell; use afl::corpus::{Corpus, InMemoryCorpus, Testcase}; use afl::engines::{DefaultEngine, DefaultState, Engine, State}; @@ -62,5 +67,7 @@ pub extern "C" fn afl_libfuzzer_main() { .fuzz_one(&mut state) .expect(&format!("Error in iter {}", i)); } + + #[cfg(feature = "std")] println!("OK"); }