Function resolve_symlink

Source
pub(crate) fn resolve_symlink(
    start: &Path,
    legal_symlink_paths: &[&LoadPath],
) -> Result<ResolvedSymlink, Error>
Expand description

Resolves an arbitrarily long chain of symlinks and checks its validity.

Ensures that all intermediate and final paths are located within the set of paths in legal_symlink_paths and that the symlink chain does not contain a cycle.

For results with the variants ResolvedSymlink::File or ResolvedSymlink::Dir, the returned PathBuf contains a fully canonicalized path.

Symlinks that point to /dev/null (including in multiple hops) signal masking in VOA. The variant ResolvedSymlink::Masked is returned for such symlinks.

ยงErrors

Returns an error if