diff --git a/src/buf/buf.rs b/src/buf/buf.rs
index 57b8ac7e219983f3fc0903631a517a4bec9c3581..4462364e1a6c23de286a38b35dd34c22274bb6aa 100644
--- a/src/buf/buf.rs
+++ b/src/buf/buf.rs
@@ -218,7 +218,7 @@ pub trait Buf {
                 ptr::copy_nonoverlapping(
                     src.as_ptr(), dst[off..].as_mut_ptr(), cnt);
 
-                off += src.len();
+                off += cnt;
             }
 
             self.advance(cnt);