فهرست منبع

Updating fuzzing code to latest format

Daniel Lockyer 9 سال پیش
والد
کامیت
249369a528
3فایلهای تغییر یافته به همراه14 افزوده شده و 13 حذف شده
  1. 2 1
      fuzz/.gitignore
  2. 6 0
      fuzz/Cargo.toml
  3. 6 12
      fuzz/fuzzers/parse.rs

+ 2 - 1
fuzz/.gitignore

@@ -1,3 +1,4 @@
 
 target
-libfuzzer
+corpus
+artifacts

+ 6 - 0
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"

+ 6 - 12
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) {
-		let url = url::Url::parse(utf8);
-	}
-	return 0;
-}
+fuzz_target!(|data: &[u8]| {
+    if let Ok(utf8) = str::from_utf8(data) {
+        let _ = url::Url::parse(utf8);
+    }
+});