Add comprehensive fuzz targets for all workspace crates #1100
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fuzz Targets
fuzz_url_parse_roundtripurlfuzz_url_differentialurljoin/make_relativeroundtripfuzz_url_settersurlfuzz_idnaidnadomain_to_ascii↔domain_to_unicoderoundtrip, Punycode roundtripfuzz_data_urldata-urlDataUrl::process+ decode, forgiving base64fuzz_form_urlencodedform_urlencodedfuzz_percent_encodingpercent-encodingAsciiSetsMotivation
This is part of an effort to integrate rust-url into OSS-Fuzz for continuous fuzzing. URL parsing is a classic fuzzing target — it processes untrusted input, implements a complex spec (WHATWG URL Standard), and the workspace includes several sub-crates (IDNA, Punycode, percent-encoding, form-urlencoded, data-url) that each independently parse untrusted data.
The existing
url/fuzz/targets only cover theurlcrate itself. These new workspace-level targets extend coverage to all sub-crates with invariant-checking strategies that are most likely to surface real bugs.Test plan
cargo checkinfuzz/cargo fuzz run <target> -- -max_total_time=60