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
This commit is contained in:
2026-08-09 22:01:00 +02:00
parent 5bb4a8b611
commit bcdede7fad
4 changed files with 96 additions and 0 deletions
+1
View File
@@ -48,6 +48,7 @@ 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 = {