```
warning: unused `std::result::Result` that must be used
--> fuzzers/persist.rs:14:5
|
14 | T::read(&mut rdr);
| ^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_must_use)]` on by default
= note: this `Result` may be an `Err` variant, which should be handled
```
This commit adds a README to the `fuzz` subdirectory of the project
root. The README has a few small pointers to help a developer get
started running the fuzz tests locally, and a link to the upstream
cargo-fuzz docs for more information.
This avoids a couple of unnecessary allocations: the individual Payloads of the
fragmented messages were allocating and filling a Vec, and the call sites were
allocating a VecDeque to be filled with messages.
Instead, always return an iterator of BorrowedPlainMessage, which the caller can
iterate over.
Previously there were two paths that would check that a max_fragment_size was in
the acceptable range. Now there's just one path: calling set_max_fragment_size.
This provides a way to construct a MessageFragmenter with the default fragment
size that is error-free.
Following feedback in #667, further clean up the semantic message
types by distinguishing messages with opaque (potentially encrypted)
payloads and messages with plaintext payloads.
This will also help with borrowing, because OpaqueMessages will
want to mutably borrow their payloads in order to be able to
decrypt them, we can borrow a PlainMessage's payloads immutably.
Instead, let the user configure the max TLS fragment size directly.
Report errors from ServerConnection::new like ClientConnection::new, so we
can report out of range fragment sizes.
Avoid introducing any memory barrier through the cloning of the configuration
by avoiding the cloning.
Especially if the user doesn't need to use the config more more than one
connection, the internal clone is wasteful.
Avoid introducing any memory barrier through the cloning of the configuration
by avoiding the cloning.
Especially if the user doesn't need to use the config more more than one
connection, the internal clone is wasteful.
webpki 0.22.0 has breaking API changes. The most notable change is the
renaming of some types to conform to Rust naming conventions, in support
of Rustls's recent similar effort.
There were some unwraps here that we can get rid of if we unduplicate
the work Message::read already does. That goes in Message::read_with_detailed_error.
Delete a fuzz corpus file that was actually wrong, but allowed by Message::read's
previous lax semantics.
Make it clear that the name passed into ClientSession is a DNS name
and cannot be empty (""), an IP address, an internationalized domain
name, etc. It has to be a DNS hostname because it is put into the SNI
extension in the client hello.