From d6f1efbf672ed400362736550e838a3e6508e71d Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 10 Apr 2025 18:14:24 -0600 Subject: [PATCH] Only write what was read during copy, fixes #931 --- src/operation/recursive.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/operation/recursive.rs b/src/operation/recursive.rs index eadde52..ba2d594 100644 --- a/src/operation/recursive.rs +++ b/src/operation/recursive.rs @@ -1,3 +1,4 @@ +use compio::buf::{IntoInner, IoBuf}; use compio::io::{AsyncReadAt, AsyncWriteAt}; use compio::BufResult; use std::future::Future; @@ -295,7 +296,9 @@ impl Op { } }; - let BufResult(result, buf_out) = to_file.write_at(buf_out, pos).await; + let BufResult(result, buf_out_slice) = + to_file.write_at(buf_out.slice(..count), pos).await; + let buf_out = buf_out_slice.into_inner(); if let Err(why) = result { ctx.buf = buf_out;