feat/p4-symlink-trust
dev
Real symlink handling: -l now transmits symlink targets (STATUS_SYMLINK frame / chunk type). -k dereferences dir-symlinks; -K follows an in-root dest symlink-to-dir (O_NOFOLLOW realpath-rechecked); --munge-links sender-rewrites targets with #SYMLINK/ and never emits escaping targets; receiver-side symmetric containment rejects absolute/.. targets. munge_links+keep_dirlinks cross the wire; PROTOCOL_VERSION 2.12.0->2.13.0. Verified: unit 28/28, 6 symlink integration, 313 full. c-review fixes applied: receiver-side containment, gated unmunge, -K TOCTOU, keep_dirlinks set at config-accept.
Merged locally into dev (a4e1f2c). Full suite + CI green (run 90ccf29). Independent c-review addressed; fixes applied.
90ccf29
No dependencies set.
The note is not visible to the blocked user.
Real symlink handling: -l now transmits symlink targets (STATUS_SYMLINK frame / chunk type). -k dereferences dir-symlinks; -K follows an in-root dest symlink-to-dir (O_NOFOLLOW realpath-rechecked); --munge-links sender-rewrites targets with #SYMLINK/ and never emits escaping targets; receiver-side symmetric containment rejects absolute/.. targets. munge_links+keep_dirlinks cross the wire; PROTOCOL_VERSION 2.12.0->2.13.0. Verified: unit 28/28, 6 symlink integration, 313 full. c-review fixes applied: receiver-side containment, gated unmunge, -K TOCTOU, keep_dirlinks set at config-accept.
Merged locally into dev (a4e1f2c). Full suite + CI green (run
90ccf29). Independent c-review addressed; fixes applied.Pull request closed