about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBenoît du Garreau <bdgdlm@outlook.com>2024-05-22 11:37:02 +0200
committerBenoît du Garreau <bdgdlm@outlook.com>2024-09-23 22:51:27 +0200
commitba3b536e204df7108def541a86bbe5d7d599cfbb (patch)
treef13ed91901b5133c7a0cdc9fa4ba95df504dd317
parent9d6039ccae68a2f1930ed9c1542d387b2c0c0ba6 (diff)
downloadrust-ba3b536e204df7108def541a86bbe5d7d599cfbb.tar.gz
rust-ba3b536e204df7108def541a86bbe5d7d599cfbb.zip
Fix `io::Take::read_buf`
-rw-r--r--library/std/src/io/mod.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/library/std/src/io/mod.rs b/library/std/src/io/mod.rs
index 0b57d01f273..98e7b40bdc6 100644
--- a/library/std/src/io/mod.rs
+++ b/library/std/src/io/mod.rs
@@ -2941,7 +2941,7 @@ impl<T: Read> Read for Take<T> {
             }
 
             let mut cursor = sliced_buf.unfilled();
-            self.inner.read_buf(cursor.reborrow())?;
+            let result = self.inner.read_buf(cursor.reborrow());
 
             let new_init = cursor.init_ref().len();
             let filled = sliced_buf.len();
@@ -2956,13 +2956,14 @@ impl<T: Read> Read for Take<T> {
             }
 
             self.limit -= filled as u64;
+
+            result
         } else {
             let written = buf.written();
-            self.inner.read_buf(buf.reborrow())?;
+            let result = self.inner.read_buf(buf.reborrow());
             self.limit -= (buf.written() - written) as u64;
+            result
         }
-
-        Ok(())
     }
 }