diff options
author | Jinho Bang <zino@chromium.org> | 2018-10-17 14:40:03 +0900 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-10-17 08:24:31 -0400 |
commit | 32f07971284f05993cf702aa589859e7900406b4 (patch) | |
tree | 99c900df9df6fd8c60e8d2595e45a3818133f2dd /src | |
parent | d4afbe6ef3206e53e2ddc7f59c6b90bbffcbe988 (diff) |
Fix a bug that copyFile reports different error codes
This is a workaroud. Once the issue is resolved in Rust side, we should
remove it.
Fixes #895
Diffstat (limited to 'src')
-rw-r--r-- | src/ops.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ops.rs b/src/ops.rs index 53ed85b7f..d786dfa41 100644 --- a/src/ops.rs +++ b/src/ops.rs @@ -811,6 +811,16 @@ fn op_copy_file( debug!("op_copy_file {} {}", from.display(), to.display()); blocking!(base.sync(), || { + // On *nix, Rust deem non-existent path as invalid input + // See https://github.com/rust-lang/rust/issues/54800 + // Once the issue is reolved, we should remove this workaround. + if cfg!(unix) && !from.is_file() { + return Err(errors::new( + ErrorKind::NotFound, + "File not found".to_string(), + )); + } + fs::copy(&from, &to)?; Ok(empty_buf()) }) |