about summary refs log tree commit diff
diff options
context:
space:
mode:
authorZachary S <zasample18+github@gmail.com>2023-09-01 20:20:29 -0500
committerZachary S <zasample18+github@gmail.com>2023-09-01 20:36:20 -0500
commit11a64a18342865b166d2da703a06deb447f834c1 (patch)
treeba6cac954638ee4946ab0fcf9037f2c81c08bbbf
parent35e416303e6591a71ef6a91e006c602d2def3968 (diff)
downloadrust-11a64a18342865b166d2da703a06deb447f834c1.tar.gz
rust-11a64a18342865b166d2da703a06deb447f834c1.zip
don't panic in BorrowedCursor::write
-rw-r--r--library/std/src/io/readbuf.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/library/std/src/io/readbuf.rs b/library/std/src/io/readbuf.rs
index 034ddd8df9a..95044de2a09 100644
--- a/library/std/src/io/readbuf.rs
+++ b/library/std/src/io/readbuf.rs
@@ -306,8 +306,9 @@ impl<'a> BorrowedCursor<'a> {
 
 impl<'a> Write for BorrowedCursor<'a> {
     fn write(&mut self, buf: &[u8]) -> Result<usize> {
-        self.append(buf);
-        Ok(buf.len())
+        let amt = cmp::min(buf.len(), self.capacity());
+        self.append(&buf[..amt]);
+        Ok(amt)
     }
 
     #[inline]