fuzz: add initial fuzzers based on libfuzzer

This commit is contained in:
Alessandro Ghedini committed 2019-09-29 23:06:33 +01:00
1 parent 66f47280c2
commit 595d0c30a5
455 files changed
+226

No files matched your search

+8
View File
@@ -20,6 +20,7 @@ matrix:
- cargo clippy --examples -- -D warnings
- cargo doc --no-deps
- make -C examples
# http3_test
- RUSTFLAGS="-D warnings" cargo test --no-run --verbose --manifest-path tools/http3_test/Cargo.toml
- cargo clippy --manifest-path tools/http3_test/Cargo.toml -- -D warnings
- rust: beta
@@ -28,18 +29,25 @@ matrix:
- RUSTFLAGS="-D warnings" cargo test --verbose
- cargo doc --no-deps
- make -C examples
# http3_test
- RUSTFLAGS="-D warnings" cargo test --no-run --verbose --manifest-path tools/http3_test/Cargo.toml
- rust: nightly
install:
- rustup component add rustfmt
- cargo install cargo-fuzz
script:
- RUSTFLAGS="-D warnings" cargo build --release --verbose
- RUSTFLAGS="-D warnings" cargo test --verbose
- cargo fmt -- --check
- cargo doc --no-deps
- make -C examples
# http3_test
- RUSTFLAGS="-D warnings" cargo test --no-run --verbose --manifest-path tools/http3_test/Cargo.toml
- cargo fmt --manifest-path tools/http3_test/Cargo.toml -- --check
# fuzzers
- RUSTFLAGS="-D warnings" cargo fuzz run packet_recv_client -- -runs=1
- RUSTFLAGS="-D warnings" cargo fuzz run packet_recv_server -- -runs=1
- cargo fmt --manifest-path fuzz/Cargo.toml -- --check
deploy:
provider: pages
+2
View File
@@ -17,6 +17,8 @@ exclude = [
"deps/boringssl/fuzz/*",
"deps/boringssl/ssl/test/runner/*",
"deps/boringssl/third_party/wycheproof_testvectors/*",
"fuzz/*",
"tools/*",
]
[features]
+2
View File
@@ -0,0 +1,2 @@
target
artifacts
+26
View File
@@ -0,0 +1,26 @@
[package]
name = "quiche-fuzz"
version = "0.1.0"
authors = ["Alessandro Ghedini <alessandro@ghedini.me>"]
edition = "2018"
publish = false
[package.metadata]
cargo-fuzz = true
[dependencies]
quiche = { path = ".." }
lazy_static = "1"
libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git" }
# Prevent this from interfering with workspaces
[workspace]
members = ["."]
[[bin]]
name = "packet_recv_client"
path = "src/packet_recv_client.rs"
[[bin]]
name = "packet_recv_server"
path = "src/packet_recv_server.rs"
+10
View File
@@ -0,0 +1,10 @@
FROM debian:bullseye
LABEL maintainer="alessandro@cloudflare.com"
WORKDIR /home/mayhem/
COPY ./cert.crt ./
COPY ./cert.key ./
COPY ./target/x86_64-unknown-linux-gnu/debug/packet_recv_client ./
COPY ./target/x86_64-unknown-linux-gnu/debug/packet_recv_server ./
+9
View File
@@ -0,0 +1,9 @@
This crate provides fuzzers based on [libfuzzer](https://llvm.org/docs/LibFuzzer.html).
Available fuzzers:
* packet\_recv\_client: Processes a single incoming packet (including frames) at
a time from the client side.
* packet\_recv\_server: Processes a single incoming packet (including frames) at
a time from the server side.
+22
View File
@@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDkzCCAnugAwIBAgIUaj26Dyzr2W9R8juKm2pNyrtati0wDQYJKoZIhvcNAQEL
BQAwWTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDESMBAGA1UEAwwJcXVpYy50ZWNoMB4X
DTE4MDkzMDIyMTE0OFoXDTE5MDkzMDIyMTE0OFowWTELMAkGA1UEBhMCQVUxEzAR
BgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5
IEx0ZDESMBAGA1UEAwwJcXVpYy50ZWNoMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAqrS30fnkI6Q+5SKsBXkIwnhO61x/Wgt0zo5P+0yTAZDYVYtEhRlf
mJ3esEleO1nq5MtM3d+6aVBJlwtTi8pBOzVfJklnxd07N3rKh3HZbGHybjhJFGT9
U4sUrcKcCpSKJaEu7IQsQQs1Hh0B67MeqJG3F7OcYCF3OXC11WK3CtDDKcLcsa2x
+WImzsPfayzEjQ4ELTVDP73oQGR6D3HaWauKES4JjI9CMn8EJRCcxjwet+c4U3kQ
g2z5KDbooBfCfrzmX3/EpMf/RaASaUtZF3kgfDT648dICWUoiparo1V73pg2vDe5
RsAp4n1A7VCY48VvGEz9Qgcp8QFztpFJnwIDAQABo1MwUTAdBgNVHQ4EFgQUFOlS
IeYH/41CN5BP/8w8F3e/fkYwHwYDVR0jBBgwFoAUFOlSIeYH/41CN5BP/8w8F3e/
fkYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAZa7XK3My4Jpe
SLz0BAj44QtghGdg98QFR3iZEnn0XC09HrkhbjaR8Ma3dn0QyMDRuPLLNl5j3VWu
rDqngENbuJJBPGkCTzozFfMU6MZzGLK1ljIiGzkMXVEaamSj7GDJ2eR2i2cBugiM
Yv7N/e8FbSMRBXoYVPjukoA8QwDJhS/oN47vt0+VsTi5wah9d3t0RCruAe/4TETo
jPxjbEGTQ71dmU66xPZMrnqlGCNa4kN2alCDNfSg1yRp4j10zSmK0jHEHOuiHliW
/Zc+aLEFcVB1QHmIyvcBIhKiuDbfbkWrqSiel6nLScIvhJaJOrGzQYBfjeZ4TO0m
IHJUojcgZA==
-----END CERTIFICATE-----
+28
View File
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCqtLfR+eQjpD7l
IqwFeQjCeE7rXH9aC3TOjk/7TJMBkNhVi0SFGV+Ynd6wSV47Werky0zd37ppUEmX
C1OLykE7NV8mSWfF3Ts3esqHcdlsYfJuOEkUZP1TixStwpwKlIoloS7shCxBCzUe
HQHrsx6okbcXs5xgIXc5cLXVYrcK0MMpwtyxrbH5YibOw99rLMSNDgQtNUM/vehA
ZHoPcdpZq4oRLgmMj0IyfwQlEJzGPB635zhTeRCDbPkoNuigF8J+vOZff8Skx/9F
oBJpS1kXeSB8NPrjx0gJZSiKlqujVXvemDa8N7lGwCnifUDtUJjjxW8YTP1CBynx
AXO2kUmfAgMBAAECggEAdWR0KT1NS8luy0qtu9HBWWM8+pSQq87HFClADZRaYDBI
5YMxqsqJOD4Q33CFEhHC/HZmtQpfen8RLINIgBCmDV6lwYGnkKWUTJHv53c+y08M
Vgn1D8Zng+VYYio7/vapjjkrONGoUU6wx7WxFXMHuWsD25PUDTPWdrTxBv6s3A0X
Le7UtuCdo/xNY4YS6S64SfiEPsBddj1NhoiwOHkXekpNRoAwnizjngubEkiznScu
gwKCW4nPV8y4CoIYyncGayrKieg03llgRngFiGJKpKeyL2UkX07Fqb2tXuJ36+RA
9DrluEkYWZCjOS+aaQu+NwxCkUV5pq+HcXQmF5VX+QKBgQDTrgF4sKwcIjm+k3Fp
bqhMS5stuSQJVn85fCIeQLq3u5DRq9n+UOvq6GvdEXz0SiupLfkXx/pDwiOux2sn
CcwMaPqWbFE4mSsCFCBkL/PvXSzH2zYesHOplztvcV+gexAjmoCikMBCcM00QpN1
GScUmQGTk/7BKJYGnVchJOXbfQKBgQDOcoZryCDxUPsg2ZMwkrnpcM+fSTT1gcgf
I3gbGohagiXVTDU4+S7I7WmsJv+lBUJCWRG0p8JJZb0NsgnrGyOfCKL59xAV5PyT
xSXMIi2+OH+fQXblII76GqWCs7A7NxtEU2geSy4ePPzSS4G81FN2oeV1OxZ9a6fk
6cFIzmqsSwKBgQDIBQlg6NiI8RJNcXdeH/EpvtuQNfzGUhR/1jtLCPEmgjcS2Odx
Nzflzd92knrXP2rIPye7//wMoNsk4UzwI4LLSztWfl21NI5+NVRyNxmyWgHhi9M0
5pk0bDH+WUv6Ea8rZWgdtNfnMD3HHw3FPZI/FWF2+QZlsRsqfuyA5iPI5QKBgQCu
D7F2Po5H6FdUIx4O3icRw6PKURbtyDbKykUB1SUR6pmrdU2Kc84WatWl6Fuy7vQm
rKJZBviwma8EVRA3wfIOrGF9D+noC+FJVffAXTDkKQ6xX6i3FvR1uvHBeW8k/hln
SkuG/ywrIpCnXjJM21hjtayZYvBbXuF4B/6HPEKEcQKBgQC+DVoOVjsoyd9udTcp
1v2xvwRVvU/OrPOLXwac1IbTgmb5FJYd8EZI0hdxJhialoTK3OONk04uxdn5tlAB
QwKBmkXZEr9EIreMp18gbzmDGalx8UcS0j+nIZvmpZXWsIimAKDGEwFc8w+NAN5a
X5UkSGjM6dnJocH0sLI7hXuVJw==
-----END PRIVATE KEY-----
@@ -0,0 +1 @@
����
Loaded 100 of 455 files, more files were not shown because too many files have changed in this diff. Show more