From e4bac6499bf3a1953ad60867584490f6e7d2dfc5 Mon Sep 17 00:00:00 2001 From: Andrew Hobden Date: Wed, 17 May 2017 13:32:02 +0200 Subject: [PATCH 1/2] Bring fuzzer up to date --- fuzz/.gitignore | 3 ++- fuzz/Cargo.toml | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/fuzz/.gitignore b/fuzz/.gitignore index 08ba2bbe..572e03bd 100644 --- a/fuzz/.gitignore +++ b/fuzz/.gitignore @@ -1,3 +1,4 @@ target -libfuzzer +corpus +artifacts diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index 0443d5ed..0b108b95 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -3,9 +3,15 @@ name = "url-fuzz" version = "0.0.1" authors = ["Automatically generated"] +publish = false + +[package.metadata] +cargo-fuzz = true [dependencies.url] path = ".." +[dependencies.libfuzzer-sys] +git = "https://github.com/rust-fuzz/libfuzzer-sys.git" [[bin]] name = "parse" From 1b97ceb3f3d7dc8eaf39cba13f2e0967be49c3c9 Mon Sep 17 00:00:00 2001 From: Andrew Hobden Date: Thu, 18 May 2017 14:10:25 +0200 Subject: [PATCH 2/2] Use macro --- fuzz/fuzzers/parse.rs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/fuzz/fuzzers/parse.rs b/fuzz/fuzzers/parse.rs index f9ff8e37..cf15cd06 100644 --- a/fuzz/fuzzers/parse.rs +++ b/fuzz/fuzzers/parse.rs @@ -1,16 +1,10 @@ #![no_main] - -extern crate libfuzzer_sys; - +#[macro_use] extern crate libfuzzer_sys; extern crate url; -use std::slice; use std::str; -#[export_name="LLVMFuzzerTestOneInput"] -pub extern fn go(data: *const u8, size: isize) -> i32 { - let slice = unsafe { slice::from_raw_parts(data, size as usize) }; - if let Ok(utf8) = str::from_utf8(slice) { +fuzz_target!(|data: &[u8]| { + if let Ok(utf8) = str::from_utf8(data) { let url = url::Url::parse(utf8); } - return 0; -} +});