Skip to content

Commit c695fc2

Browse files
authoredMar 14, 2025··
Merge pull request #316 from pluveto/main
Add assertion in `produce` method to check buffer capacity in implementations for `BufWriter`
2 parents f3e9742 + 292ea4c commit c695fc2

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed
 

‎src/futures/write/buf_writer.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,12 @@ impl<W: AsyncWrite> AsyncBufWrite for BufWriter<W> {
193193
}
194194

195195
fn produce(self: Pin<&mut Self>, amt: usize) {
196-
*self.project().buffered += amt;
196+
let this = self.project();
197+
debug_assert!(
198+
*this.buffered + amt <= this.buf.len(),
199+
"produce called with amt exceeding buffer capacity"
200+
);
201+
*this.buffered += amt;
197202
}
198203
}
199204

‎src/tokio/write/buf_writer.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,12 @@ impl<W: AsyncWrite> AsyncBufWrite for BufWriter<W> {
193193
}
194194

195195
fn produce(self: Pin<&mut Self>, amt: usize) {
196-
*self.project().buffered += amt;
196+
let this = self.project();
197+
debug_assert!(
198+
*this.buffered + amt <= this.buf.len(),
199+
"produce called with amt exceeding buffer capacity"
200+
);
201+
*this.buffered += amt;
197202
}
198203
}
199204

0 commit comments

Comments
 (0)
Please sign in to comment.