From f4c2825c8f80eae6ef18eb3fa30464a18a588e0f Mon Sep 17 00:00:00 2001 From: Nicolas Koch Date: Wed, 16 May 2018 10:27:14 +0200 Subject: Adjust len in every iteration --- src/libstd/sys/unix/fs.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/libstd/sys') diff --git a/src/libstd/sys/unix/fs.rs b/src/libstd/sys/unix/fs.rs index 0649a147ea3..c9d187f2ff2 100644 --- a/src/libstd/sys/unix/fs.rs +++ b/src/libstd/sys/unix/fs.rs @@ -815,6 +815,7 @@ pub fn copy(from: &Path, to: &Path) -> io::Result { let mut written = 0u64; while written < len { + let bytes_to_copy = len - written; let copy_result = unsafe { // We actually don't have to adjust the offsets, // because copy_file_range adjusts the file offset automatically @@ -822,7 +823,7 @@ pub fn copy(from: &Path, to: &Path) -> io::Result { ptr::null_mut(), writer.as_raw_fd(), ptr::null_mut(), - len as usize, + bytes_to_copy as usize, 0) ) }; -- cgit 1.4.1-3-g733a5