Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fuzz: add initial fuzzers based on libfuzzer #186

Merged
merged 4 commits into from
Sep 29, 2019
Merged

fuzz: add initial fuzzers based on libfuzzer #186

merged 4 commits into from
Sep 29, 2019

Conversation

ghedo
Copy link
Member

@ghedo ghedo commented Sep 27, 2019

Supersedes #179. Even Mayhem seems to like this more so it seems like the way to go.

There are two downsides though:

  1. cargo-fuzz only seems to work with Rust nightly.
  2. cargo-fuzz doesn't support an "initialization" step (e.g. to create quiche Config object), so we need to hack one in using lazy_static.

This way more of the packet processing code can be fuzzed (e.g.
including frame parsing).
@ghedo ghedo requested a review from a team as a code owner September 27, 2019 14:30
@ghedo ghedo mentioned this pull request Sep 27, 2019
@ghedo
Copy link
Member Author

ghedo commented Sep 27, 2019

Also, the lazy_static hack could be removed if https://github.com/rust-fuzz/libfuzzer-sys/pull/33 (or similar) was merged into libfuzzer-sys.

LPardue
LPardue previously approved these changes Sep 29, 2019
This is not done automatically because Config contains a pointer to
SSL_CTX, however that should be safe for Send.
@camshaft
Copy link

You should consider using bolero 😄. I ran into similar downsides and wanted something better. You can see a feature comparison here: https://github.com/camshaft/bolero/#prior-work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants