mirror of
https://github.com/cloudflare/quiche.git
synced 2026-10-28 08:36:24 +08:00
fuzz: add initial fuzzers based on libfuzzer
This commit is contained in:
1 parent
66f47280c2
commit
595d0c30a5
455 files changed
+226
No files matched your search
@@ -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
|
||||
|
||||
@@ -17,6 +17,8 @@ exclude = [
|
||||
"deps/boringssl/fuzz/*",
|
||||
"deps/boringssl/ssl/test/runner/*",
|
||||
"deps/boringssl/third_party/wycheproof_testvectors/*",
|
||||
"fuzz/*",
|
||||
"tools/*",
|
||||
]
|
||||
|
||||
[features]
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
target
|
||||
artifacts
|
||||
@@ -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"
|
||||
@@ -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 ./
|
||||
@@ -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.
|
||||
@@ -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-----
|
||||
@@ -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-----
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
�
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
����
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loaded 100 of 455 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user