Skip to content

docs: add a rust-url external example - #321

Merged
h1994st merged 1 commit into
mainfrom
docs/rust-url-example
Oct 10, 2026
Merged

h1994st merged 1 commit into
mainfrom
docs/rust-url-example

Conversation

@h1994st

@h1994st h1994st commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Problem

The external examples have no cargo-fuzz target, the Rust half of what AFLplusplus/fuzz-reachability#4 integrates rllvm into.

Fix

  • examples/external/rust-url: build rust-url v2.5.8's parse fuzz target through rllvm-rustc, extract it, and reach from libFuzzer's entry through url into idna.
  • The README states what the bitcode leaves out (prebuilt std, libFuzzer's C++, outlined functions) and that cargo-fuzz's ASan and coverage instrumentation is captured, plus a plain cargo build --release of the crate, whose split codegen units need fix: link split codegen-unit bitcode from rustc #318.
  • reproduce.sh builds the pinned tag on a macOS host, fails if any Rust function the binary defines outside std is missing from the bitcode, asserts the answers, and prints the recorded counts.

Verification

  • reproduce.sh from a fresh clone on arm64 macOS: exit 0, 13 modules, 719 functions; shellcheck is clean.
  • The std-only check flags <url::parser::Parser>::parse_file when that function is removed from the bitcode's symbol list.

@h1994st
h1994st enabled auto-merge (squash) October 10, 2026 07:37
@h1994st
h1994st merged commit 3bbb484 into main Oct 10, 2026
17 checks passed
@h1994st
h1994st deleted the docs/rust-url-example branch October 10, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant