about summary refs log tree commit diff
path: root/library/std/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-04-11 22:38:56 +0200
committerGitHub <noreply@github.com>2024-04-11 22:38:56 +0200
commitd8ae975c02f22430187ba67b18e402382222ac99 (patch)
tree4e946cdeb1a35c6a87e499990799562dc566d18c /library/std/src
parent17a8ee636f3f069861bca5895e47e91fa6a1c183 (diff)
parent91fe6f9343a384dd7d598705a4bc4b137845dbea (diff)
downloadrust-d8ae975c02f22430187ba67b18e402382222ac99.tar.gz
rust-d8ae975c02f22430187ba67b18e402382222ac99.zip
Rollup merge of #123806 - joboet:advanced_overflow, r=Amanieu
Panic on overflow in `BorrowedCursor::advance`

Passing `usize::MAX` to `advance` clearly isn't correct, but the current assertion fails to detect this when overflow checks are disabled. This isn't unsound, but should probably be fixed regardless.
Diffstat (limited to 'library/std/src')
-rw-r--r--library/std/src/io/tests.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/library/std/src/io/tests.rs b/library/std/src/io/tests.rs
index eb5d5988768..090a091b09a 100644
--- a/library/std/src/io/tests.rs
+++ b/library/std/src/io/tests.rs
@@ -210,6 +210,15 @@ fn read_buf_exact() {
 }
 
 #[test]
+#[should_panic]
+fn borrowed_cursor_advance_overflow() {
+    let mut buf = [0; 512];
+    let mut buf = BorrowedBuf::from(&mut buf[..]);
+    buf.unfilled().advance(1);
+    buf.unfilled().advance(usize::MAX);
+}
+
+#[test]
 fn take_eof() {
     struct R;