diff --git a/src/fs.rs b/src/fs.rs index 53a82990b..3dcc1c6db 100644 --- a/src/fs.rs +++ b/src/fs.rs @@ -553,7 +553,8 @@ fn validate_no_symlink_components(base: &PathBuf, name: &str) -> ResultType<()> Ok(()) } -fn join_validated_path(base: &PathBuf, name: &str) -> ResultType { +/// Validate an untrusted relative file name and existing path components before joining it. +pub fn join_validated_path(base: &PathBuf, name: &str) -> ResultType { validate_file_name_no_traversal(name)?; validate_no_symlink_components(base, name)?; Ok(TransferJob::join(base, name))