diff --git a/fuzz/.gitignore b/fuzz/.gitignore new file mode 100644 index 00000000..572e03bd --- /dev/null +++ b/fuzz/.gitignore @@ -0,0 +1,4 @@ + +target +corpus +artifacts diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml new file mode 100644 index 00000000..37114cd3 --- /dev/null +++ b/fuzz/Cargo.toml @@ -0,0 +1,22 @@ + +[package] +name = "snow-fuzz" +version = "0.0.1" +authors = ["Automatically generated"] +publish = false + +[package.metadata] +cargo-fuzz = true + +[dependencies.snow] +path = ".." +[dependencies.libfuzzer-sys] +git = "https://github.com/rust-fuzz/libfuzzer-sys.git" + +# Prevent this from interfering with workspaces +[workspace] +members = ["."] + +[[bin]] +name = "params" +path = "fuzz_targets/params.rs" diff --git a/fuzz/fuzz_targets/params.rs b/fuzz/fuzz_targets/params.rs new file mode 100644 index 00000000..8fc0e99e --- /dev/null +++ b/fuzz/fuzz_targets/params.rs @@ -0,0 +1,12 @@ +#![no_main] +#[macro_use] extern crate libfuzzer_sys; +extern crate snow; + +use snow::Error; +use snow::params::NoiseParams; + +fuzz_target!(|data: &[u8]| { + if let Ok(s) = String::from_utf8(data.to_vec()){ + let _: Result = s.parse(); + } +}); diff --git a/tests/fuzz_findings.rs b/tests/fuzz_findings.rs new file mode 100644 index 00000000..bad3af85 --- /dev/null +++ b/tests/fuzz_findings.rs @@ -0,0 +1,9 @@ +extern crate snow; + +use snow::Error; +use snow::params::NoiseParams; + +#[test] +fn fuzz_1(){ + let _: Result = "Noise_/I××QQQ••".parse(); +}