Add conversion helpers between BandwidthLimit and shared components#1195
Merged
Conversation
4 tasks
oferchen
added a commit
that referenced
this pull request
May 14, 2026
Set up a cargo-fuzz scaffold at the repository root so contributors and CI can fuzz the multiplex frame parser - the highest-level entry point that consumes untrusted bytes from network peers. Coverage-guided exploration will fan out across header validation, payload-length checks, and message-code decoding without needing per-path harnesses. The fuzz crate is excluded from the root workspace so libfuzzer-sys does not leak into ordinary `cargo build` runs. Refs #1195 #1291 #1293 #1304 #2103
oferchen
added a commit
that referenced
this pull request
May 16, 2026
Add a curated corpus of malformed, truncated, and edge-case byte streams that exercise the multiplex reader, legacy `@RSYNCD:` handshake parser, varint and fixed-int decoders, delta token decoder, file-list name decoder, and filter-rule wire decoder. Each entry carries an inline comment describing the regression it would catch, and three runners assert documented outcomes: clean parse, specific error kind, or no panic under `catch_unwind`. Designed as the static regression seed for live interop fuzzing (#1196). The corpus is extensible: new adversarial inputs are added by appending to the relevant static array.
oferchen
added a commit
that referenced
this pull request
May 16, 2026
Add a curated corpus of malformed, truncated, and edge-case byte streams that exercise the multiplex reader, legacy `@RSYNCD:` handshake parser, varint and fixed-int decoders, delta token decoder, file-list name decoder, and filter-rule wire decoder. Each entry carries an inline comment describing the regression it would catch, and three runners assert documented outcomes: clean parse, specific error kind, or no panic under `catch_unwind`. Designed as the static regression seed for live interop fuzzing (#1196). The corpus is extensible: new adversarial inputs are added by appending to the relevant static array.
oferchen
added a commit
that referenced
this pull request
May 16, 2026
Add a curated corpus of malformed, truncated, and edge-case byte streams that exercise the multiplex reader, legacy `@RSYNCD:` handshake parser, varint and fixed-int decoders, delta token decoder, file-list name decoder, and filter-rule wire decoder. Each entry carries an inline comment describing the regression it would catch, and three runners assert documented outcomes: clean parse, specific error kind, or no panic under `catch_unwind`. Designed as the static regression seed for live interop fuzzing (#1196). The corpus is extensible: new adversarial inputs are added by appending to the relevant static array.
oferchen
added a commit
that referenced
this pull request
May 16, 2026
Add a curated corpus of malformed, truncated, and edge-case byte streams that exercise the multiplex reader, legacy `@RSYNCD:` handshake parser, varint and fixed-int decoders, delta token decoder, file-list name decoder, and filter-rule wire decoder. Each entry carries an inline comment describing the regression it would catch, and three runners assert documented outcomes: clean parse, specific error kind, or no panic under `catch_unwind`. Designed as the static regression seed for live interop fuzzing (#1196). The corpus is extensible: new adversarial inputs are added by appending to the relevant static array.
oferchen
added a commit
that referenced
this pull request
May 16, 2026
Add a curated corpus of malformed, truncated, and edge-case byte streams that exercise the multiplex reader, legacy `@RSYNCD:` handshake parser, varint and fixed-int decoders, delta token decoder, file-list name decoder, and filter-rule wire decoder. Each entry carries an inline comment describing the regression it would catch, and three runners assert documented outcomes: clean parse, specific error kind, or no panic under `catch_unwind`. Designed as the static regression seed for live interop fuzzing (#1196). The corpus is extensible: new adversarial inputs are added by appending to the relevant static array.
oferchen
added a commit
that referenced
this pull request
May 16, 2026
… (#4181) * test(protocol): adversarial stream corpus for parser robustness (#1195) Add a curated corpus of malformed, truncated, and edge-case byte streams that exercise the multiplex reader, legacy `@RSYNCD:` handshake parser, varint and fixed-int decoders, delta token decoder, file-list name decoder, and filter-rule wire decoder. Each entry carries an inline comment describing the regression it would catch, and three runners assert documented outcomes: clean parse, specific error kind, or no panic under `catch_unwind`. Designed as the static regression seed for live interop fuzzing (#1196). The corpus is extensible: new adversarial inputs are added by appending to the relevant static array. * style(protocol): apply rustfmt to adversarial_stream_corpus * fix(protocol): move cursor inside catch_unwind closure for UnwindSafe * test(protocol): add corpus entries that exercise NoPanic and Ok outcomes Adds one MULTIPLEX_CASES entry tagged Outcome::NoPanic (arbitrary bytes that must not crash the reader) and one LEGACY_GREETING_CASES entry tagged GreetingOutcome::Ok (canonical \@rsyncd: 32.0 line). Removes the dead_code warning the unused variants triggered without silencing the lint.
oferchen
added a commit
that referenced
this pull request
May 18, 2026
Set up a cargo-fuzz scaffold at the repository root so contributors and CI can fuzz the multiplex frame parser - the highest-level entry point that consumes untrusted bytes from network peers. Coverage-guided exploration will fan out across header validation, payload-length checks, and message-code decoding without needing per-path harnesses. The fuzz crate is excluded from the root workspace so libfuzzer-sys does not leak into ordinary `cargo build` runs. Refs #1195 #1291 #1293 #1304 #2103
oferchen
added a commit
that referenced
this pull request
May 18, 2026
… (#4181) * test(protocol): adversarial stream corpus for parser robustness (#1195) Add a curated corpus of malformed, truncated, and edge-case byte streams that exercise the multiplex reader, legacy `@RSYNCD:` handshake parser, varint and fixed-int decoders, delta token decoder, file-list name decoder, and filter-rule wire decoder. Each entry carries an inline comment describing the regression it would catch, and three runners assert documented outcomes: clean parse, specific error kind, or no panic under `catch_unwind`. Designed as the static regression seed for live interop fuzzing (#1196). The corpus is extensible: new adversarial inputs are added by appending to the relevant static array. * style(protocol): apply rustfmt to adversarial_stream_corpus * fix(protocol): move cursor inside catch_unwind closure for UnwindSafe * test(protocol): add corpus entries that exercise NoPanic and Ok outcomes Adds one MULTIPLEX_CASES entry tagged Outcome::NoPanic (arbitrary bytes that must not crash the reader) and one LEGACY_GREETING_CASES entry tagged GreetingOutcome::Ok (canonical \@rsyncd: 32.0 line). Removes the dead_code warning the unused variants triggered without silencing the lint.
oferchen
added a commit
that referenced
this pull request
May 18, 2026
Set up a cargo-fuzz scaffold at the repository root so contributors and CI can fuzz the multiplex frame parser - the highest-level entry point that consumes untrusted bytes from network peers. Coverage-guided exploration will fan out across header validation, payload-length checks, and message-code decoding without needing per-path harnesses. The fuzz crate is excluded from the root workspace so libfuzzer-sys does not leak into ordinary `cargo build` runs. Refs #1195 #1291 #1293 #1304 #2103
oferchen
added a commit
that referenced
this pull request
May 18, 2026
… (#4181) * test(protocol): adversarial stream corpus for parser robustness (#1195) Add a curated corpus of malformed, truncated, and edge-case byte streams that exercise the multiplex reader, legacy `@RSYNCD:` handshake parser, varint and fixed-int decoders, delta token decoder, file-list name decoder, and filter-rule wire decoder. Each entry carries an inline comment describing the regression it would catch, and three runners assert documented outcomes: clean parse, specific error kind, or no panic under `catch_unwind`. Designed as the static regression seed for live interop fuzzing (#1196). The corpus is extensible: new adversarial inputs are added by appending to the relevant static array. * style(protocol): apply rustfmt to adversarial_stream_corpus * fix(protocol): move cursor inside catch_unwind closure for UnwindSafe * test(protocol): add corpus entries that exercise NoPanic and Ok outcomes Adds one MULTIPLEX_CASES entry tagged Outcome::NoPanic (arbitrary bytes that must not crash the reader) and one LEGACY_GREETING_CASES entry tagged GreetingOutcome::Ok (canonical \@rsyncd: 32.0 line). Removes the dead_code warning the unused variants triggered without silencing the lint.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
BandwidthLimitto expose the sharedBandwidthLimitComponentsrepresentationFromconversions betweenBandwidthLimitandBandwidthLimitComponentsTesting
cargo test -qhttps://chatgpt.com/codex/tasks/task_e_68febf063d108323baba438398c825ad