about summary refs log tree commit diff
path: root/library/std/src/io/buffered/bufreader/buffer.rs
diff options
context:
space:
mode:
authorbinarycat <binarycat@envs.net>2024-09-06 16:28:22 -0400
committerbinarycat <binarycat@envs.net>2024-09-06 16:28:22 -0400
commitdfdbf6343ae1ea97b504b36ec1933e181ec7198e (patch)
tree732f527cd05ffd122c73d307643ce17cc79094cc /library/std/src/io/buffered/bufreader/buffer.rs
parent17b322fa69eed7216dccc9f097eb68237cf62234 (diff)
downloadrust-dfdbf6343ae1ea97b504b36ec1933e181ec7198e.tar.gz
rust-dfdbf6343ae1ea97b504b36ec1933e181ec7198e.zip
properly handle EOF in BufReader::peek
previously this would cause an infinite loop due to it being
unable to read `n` bytes.
Diffstat (limited to 'library/std/src/io/buffered/bufreader/buffer.rs')
-rw-r--r--library/std/src/io/buffered/bufreader/buffer.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/library/std/src/io/buffered/bufreader/buffer.rs b/library/std/src/io/buffered/bufreader/buffer.rs
index ccd67fafb45..1bf84d8bef3 100644
--- a/library/std/src/io/buffered/bufreader/buffer.rs
+++ b/library/std/src/io/buffered/bufreader/buffer.rs
@@ -98,7 +98,7 @@ impl Buffer {
     }
 
     /// Read more bytes into the buffer without discarding any of its contents
-    pub fn read_more(&mut self, mut reader: impl Read) -> io::Result<()> {
+    pub fn read_more(&mut self, mut reader: impl Read) -> io::Result<usize> {
         let mut buf = BorrowedBuf::from(&mut self.buf[self.pos..]);
         let old_init = self.initialized - self.pos;
         unsafe {
@@ -107,7 +107,7 @@ impl Buffer {
         reader.read_buf(buf.unfilled())?;
         self.filled += buf.len();
         self.initialized += buf.init_len() - old_init;
-        Ok(())
+        Ok(buf.len())
     }
 
     /// Remove bytes that have already been read from the buffer.