]> git.ipfire.org Git - thirdparty/rsync.git/commit
testsuite: skip symlink-dirlink-basis on platforms without RESOLVE_BENEATH
authorAndrew Tridgell <andrew@tridgell.net>
Wed, 29 Apr 2026 23:00:09 +0000 (09:00 +1000)
committerAndrew Tridgell <andrew@tridgell.net>
Wed, 29 Apr 2026 23:30:31 +0000 (09:30 +1000)
commit04e2fc2c76ee3cdf554c6996b619fc909528fde6
treebc2788bb06d15f7f3326ed275f60635f07b7c094
parent7f60ec001a0be63b770707ec8b829524c3809a43
testsuite: skip symlink-dirlink-basis on platforms without RESOLVE_BENEATH

secure_relative_open() has a kernel-enforced "stay below dirfd" path
on Linux 5.6+ (openat2 RESOLVE_BENEATH) and FreeBSD 13+ (openat
O_RESOLVE_BENEATH). On Solaris, OpenBSD, NetBSD, and Cygwin the code
falls back to the per-component O_NOFOLLOW walk, which by design
rejects every directory symlink in the path -- the very case this
test exercises. Mark the test skipped there rather than have it
fail with a known regression that's tracked separately.

macOS is intentionally not in the skip list: although it does not
have O_RESOLVE_BENEATH either, the test passes there in practice;
investigation of the underlying reason is left as follow-up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
testsuite/symlink-dirlink-basis.test