Skip to content

Commit eb7ae10

Browse files
committed
Add assertion in produce method to check buffer capacity in implementations for BufWriter
1 parent eb7abe2 commit eb7ae10

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/futures/write/buf_writer.rs

Lines changed: 6 additions & 1 deletion
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+
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

Lines changed: 6 additions & 1 deletion
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+
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)