#693 introduced fuzzing targets to some crates and in the interest of avoiding forever lasting PRs, I didn't fix all of the found issues. Current status at the end of the PR is:
- packet: address is good, packet roundtrip added late, immediate roundtrip failure(s), #[ignore] tests
- btp: most fuzzed, looking quite good
- stream: roundtrip added late, immediate roundtrip failure(s), #[ignore] tests
- ccp: roundtripping, might be good
Other crates have not been fuzzed.
One obvious fix which isn't implemented yet is matching the interledger-packet datetime string against a regex before asking chrono to parse it in crates/interledger-packet/src/packet.rs. This fix would be similar to what was done for the variable length btp timestamp in e6f21c9. Done in #707.
#[ignore]'d test cases:
Marking this as good-first-issue as with any hand-written parsing code, there are most likely issues still to be discovered even after fixing the #[ignore] test cases. Mentoring is available by pinging me or anyone who recently contributed to the repository. As there are many things to do, it might be best to avoid huge PRs like I ended up doing and tackling one issue at a time.
#693 introduced fuzzing targets to some crates and in the interest of avoiding forever lasting PRs, I didn't fix all of the found issues. Current status at the end of the PR is:
Other crates have not been fuzzed.
One obvious fix which isn't implemented yet is matching theDone in #707.interledger-packetdatetime string against a regex before askingchronoto parse it incrates/interledger-packet/src/packet.rs. This fix would be similar to what was done for the variable length btp timestamp in e6f21c9.#[ignore]'d test cases:interledger_packet::packet::fuzzed::fuzzed_0_trailing_bytes(see https://github.com/interledger-rs/interledger-rs/issues/705#issuecomment-814876557)interledger_stream::packet::fuzzedtwo casesMarking this as good-first-issue as with any hand-written parsing code, there are most likely issues still to be discovered even after fixing the
#[ignore]test cases. Mentoring is available by pinging me or anyone who recently contributed to the repository. As there are many things to do, it might be best to avoid huge PRs like I ended up doing and tackling one issue at a time.