Skip to content

Commit

Permalink
io: add assert in copy_bidirectional that poll_write is sensible (#4125)
Browse files Browse the repository at this point in the history
  • Loading branch information
suikammd committed Sep 22, 2021
1 parent b9834f6 commit cdc46a9
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tokio/src/io/util/copy.rs
Expand Up @@ -84,6 +84,14 @@ impl CopyBuffer {
}
}

// If pos larger than cap, this loop will never stop.
// In particular, user's wrong poll_write implementation returning
// incorrect written length may lead to thread blocking.
debug_assert!(
self.pos <= self.cap,
"writer returned length larger than input slice"
);

// If we've written all the data and we've seen EOF, flush out the
// data and finish the transfer.
if self.pos == self.cap && self.read_done {
Expand Down

0 comments on commit cdc46a9

Please sign in to comment.