Phase 4: symlink trust (-k/--copy-dirlinks, -K/--keep-dirlinks, --munge-links) #279

Closed
TapTap wants to merge 0 commits from feat/p4-symlink-trust into dev
Owner

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.

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.
Author
Owner

Merged locally into dev (a4e1f2c). Full suite + CI green (run 90ccf29). Independent c-review addressed; fixes applied.

Merged locally into dev (a4e1f2c). Full suite + CI green (run 90ccf29). Independent c-review addressed; fixes applied.
TapTap closed this pull request 2026-09-08 23:00:09 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#279