rust/fuzz (cargo-fuzz, nightly, its own workspace with the same IronRDP patches) has targets for the Telnet IAC parser, the IRC parser + state machine + mIRC formatter, VNC framebuffer updates and decoders, ~/.ssh/config parsing and the update manifest. They reach the private parsers through hidden entry points behind nexus-core's 'fuzzing' feature. A nightly workflow runs each for two minutes and uploads any crashing input. A first 45 s run of each locally found nothing.
25 lines
584 B
TOML
25 lines
584 B
TOML
[workspace]
|
|
resolver = "3"
|
|
members = ["core", "app"]
|
|
exclude = ["fuzz"]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[profile.dev.package."*"]
|
|
opt-level = 2
|
|
|
|
# The terminal parser is generic and gets instantiated in the app crate; unoptimised it is ~50x slower.
|
|
[profile.dev.package.nexus]
|
|
opt-level = 2
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
|
|
# IronRDP compatibility patches; see vendor/README.md for what each changes and when to drop it.
|
|
[patch.crates-io]
|
|
picky = { path = "vendor/picky" }
|
|
sspi = { path = "vendor/sspi" }
|
|
ironrdp-session = { path = "vendor/ironrdp-session" }
|