Details
-
Sub-task
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
2.0.0-alpha, 3.0.0-alpha1
-
None
-
None
Description
Symlink resolution is performed on a per-filesystem basis. In a multi-layered filesystem, the symlinks need to be resolved relative to the highest level filesystem in the stack. Otherwise, fs implementations like viewfs and chroot fs behave incorrectly. Absolute symlinks may violate the base of the chroot. Links that should have crossed viewfs mount points are again incorrectly resolved relative to the base filesystem.
Symlink resolution has occur above the level of any individual fs to allow a multi-layered fs stack to work correctly, such as via a symlink-aware FilteredFileSystem that wraps any arbitrary fs to ensure links are resolved from the top-down of the stack.