diff --git a/.gitignore b/.gitignore index 62707ec5c7..989f33d1ec 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,7 @@ **/*.rs.bk Cargo.lock spec/target -.idea + +**/fuzz/corpus/ +**/fuzz/target/ +**/fuzz/artifacts/ diff --git a/wasmi_v1/fuzz/Cargo.toml b/wasmi_v1/fuzz/Cargo.toml new file mode 100644 index 0000000000..8145a44cea --- /dev/null +++ b/wasmi_v1/fuzz/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "wasmi-fuzz" +version = "0.0.0" +authors = ["Parity Technologies ", "Robin Freyler "] +publish = false +edition = "2021" + +[package.metadata] +cargo-fuzz = true + +[dependencies] +libfuzzer-sys = "0.4" +wasm-smith = "0.11" + +[dependencies.wasmi] +path = ".." + +# Prevent this from interfering with workspaces +[workspace] +members = ["."] + +[[bin]] +name = "translate" +path = "fuzz_targets/translate.rs" +test = false +doc = false diff --git a/wasmi_v1/fuzz/fuzz_targets/translate.rs b/wasmi_v1/fuzz/fuzz_targets/translate.rs new file mode 100644 index 0000000000..238d456aa7 --- /dev/null +++ b/wasmi_v1/fuzz/fuzz_targets/translate.rs @@ -0,0 +1,9 @@ +#![no_main] +use libfuzzer_sys::fuzz_target; +use wasmi::{Engine, Module}; + +fuzz_target!(|data: wasm_smith::Module| { + let wasm = data.to_bytes(); + let engine = Engine::default(); + Module::new(&engine, &mut &wasm[..]).unwrap(); +});