Browse Source

Add packet parser fuzzer.

whitequark 7 years ago
parent
commit
6271dc7270

+ 3 - 0
fuzz/.gitignore

@@ -0,0 +1,3 @@
+target
+corpus
+artifacts

+ 22 - 0
fuzz/Cargo.toml

@@ -0,0 +1,22 @@
+[package]
+name = "smoltcp-fuzz"
+version = "0.0.1"
+authors = ["Automatically generated"]
+publish = false
+
+[package.metadata]
+cargo-fuzz = true
+
+[dependencies.smoltcp]
+path = ".."
+
+[dependencies.libfuzzer-sys]
+git = "https://github.com/rust-fuzz/libfuzzer-sys.git"
+
+# Prevent this from interfering with workspaces
+[workspace]
+members = ["."]
+
+[[bin]]
+name = "packet_parser"
+path = "fuzz_targets/packet_parser.rs"

BIN
fuzz/corpus/packet_parser/arp.bin


BIN
fuzz/corpus/packet_parser/icmpv4_unreachable.bin


BIN
fuzz/corpus/packet_parser/tcpv4_data.bin


BIN
fuzz/corpus/packet_parser/tcpv4_fin.bin


BIN
fuzz/corpus/packet_parser/tcpv4_rst.bin


BIN
fuzz/corpus/packet_parser/tcpv4_syn.bin


BIN
fuzz/corpus/packet_parser/udpv4.bin


+ 8 - 0
fuzz/fuzz_targets/packet_parser.rs

@@ -0,0 +1,8 @@
+#![no_main]
+#[macro_use] extern crate libfuzzer_sys;
+extern crate smoltcp;
+
+fuzz_target!(|data: &[u8]| {
+    use smoltcp::wire::*;
+    format!("{}", PrettyPrinter::<EthernetFrame<&'static [u8]>>::new("", &data));
+});