Files
lanspread/Cargo.toml
T
ddidderr bcdede7fad fix(peer): reject non-normalized download paths
Require catalog game IDs and every remotely described path component to use
Unicode NFC before any download transaction begins. This prevents canonically
equivalent spellings from bypassing portable alias checks on filesystems that
normalize names, while preserving the protocol's exact path spelling.

Cover accepted NFC names and both game-ID and nested-component rejection with
zero-mutation tree snapshots.

Test Plan:
- `just clippy` -- passed
- `just test` -- passed (242 lanspread-peer tests)
- `git diff --cached --check` -- passed
2026-08-09 22:01:00 +02:00

82 lines
1.8 KiB
TOML

[workspace]
resolver = "3"
members = [
"crates/lanspread-compat",
"crates/lanspread-db",
"crates/lanspread-mdns",
"crates/lanspread-peer",
"crates/lanspread-peer-cli",
"crates/lanspread-proto",
"crates/lanspread-tauri-deno-ts/src-tauri",
"crates/lanspread-utils",
]
[workspace.dependencies]
base64 = "0.23"
bytes = { version = "1", features = ["serde"] }
cap-fs-ext = { version = "4", default-features = false }
cap-primitives = "4"
crc32fast = "1"
eyre = "0.6"
futures = "0.3"
gethostname = "1"
if-addrs = "0.15"
log = "0.4"
mdns-sd = "0.20"
mimalloc = { version = "0.1", features = ["secure"] }
notify = "8"
s2n-quic = { version = "1", features = ["provider-event-tracing"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sqlx = {
version = "0.9",
default-features = false,
features = [
"derive",
"runtime-tokio",
"sqlite",
]
}
strum = { version = "0.28", features = ["derive"] }
tauri = { version = "2", features = [] }
tauri-plugin-dialog = "2"
tauri-plugin-shell = "2"
tauri-plugin-store = "2"
time = { version = "0.3", features = ["local-offset"] }
tokio = { version = "1", features = ["full"] }
tokio-util = { version = "0.7", features = ["codec", "rt"] }
tracing = "0.1"
tracing-log = "0.2"
tracing-subscriber = "0.3"
unicode-normalization = "0.1"
uuid = { version = "1", features = ["v7"] }
walkdir = "2"
windows = {
version = "0.62",
features = [
"Win32",
"Win32_UI",
"Win32_UI_Shell",
"Win32_UI_WindowsAndMessaging",
]
}
[profile.release]
debug = true
strip = false
debug-assertions = true
overflow-checks = true
lto = false
panic = "unwind"
incremental = true
[profile.production]
inherits = "release"
debug = false
strip = true
debug-assertions = false
overflow-checks = false
lto = true
incremental = false
codegen-units = 1