Rocket/core/lib/fuzz
Sergio Benitez 0a56312607 Implement more conservative URI normalization.
* Trailing slashes are now allowed in all normalized URI paths, except
    for route attribute URIs: `/foo/` is considered normalized.
  * Query parts of URIs may now be empty: `/foo?` and `/foo/?` are now
    considered normalized.
  * The `base` field of `Catcher` is now only accessible via a new
    getter method: `Catcher::base()`.
  * `RawStr::split()` returns a `DoubleEndedIterator`.
  * Introduced a second normalization for `Origin`, "nontrailing", and
    associated methods: `Origin::normalize_nontrailing()`, and
    `Origin::is_normalized_nontrailing()`.
  * Added `Origin::has_trailing_slash()`.
  * The `Segments<Path>` iterator will now return an empty string if
    there is a trailing slash in the referenced path.
  * `Segments::len()` is now `Segments::num()`.
  * Added `RawStr::trim()`.

Resolves #2512.
2023-04-07 19:59:57 -07:00
..
corpus/uri-parsing Fuzz URI parsing and display. 2021-06-06 21:52:44 -07:00
targets Implement more conservative URI normalization. 2023-04-07 19:59:57 -07:00
.gitignore Fuzz URI parsing and display. 2021-06-06 21:52:44 -07:00
Cargo.toml Implement more conservative URI normalization. 2023-04-07 19:59:57 -07:00
README.md Fuzz URI parsing and display. 2021-06-06 21:52:44 -07:00

README.md

Fuzzing

Install cargo-fuzz:

cargo install -f cargo-fuzz

Run any available target where $target is the name of the target and $n is the number of CPUs to use for fuzzing:

cargo fuzz list # get list of targets
cargo fuzz run $target -j $n