diff options
author | 2021-02-16 20:44:33 +0000 | |
---|---|---|
committer | 2021-02-16 12:44:33 -0800 | |
commit | 2428c152a67c06057a98d9d29b08389cb3429c1f (patch) | |
tree | 78e225d0fadc1cfc602531c22b804684d80d7209 /src | |
parent | 268f6f80b4685b53f57706abc6aef31f46b54738 (diff) | |
download | bytes-2428c152a67c06057a98d9d29b08389cb3429c1f.tar.gz bytes-2428c152a67c06057a98d9d29b08389cb3429c1f.tar.zst bytes-2428c152a67c06057a98d9d29b08389cb3429c1f.zip |
Panic on integer overflow in Chain::remaining (#482)
Make it safer.
Diffstat (limited to 'src')
-rw-r--r-- | src/buf/chain.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/buf/chain.rs b/src/buf/chain.rs index d68bc2d..8a1598c 100644 --- a/src/buf/chain.rs +++ b/src/buf/chain.rs @@ -135,7 +135,7 @@ where U: Buf, { fn remaining(&self) -> usize { - self.a.remaining() + self.b.remaining() + self.a.remaining().checked_add(self.b.remaining()).unwrap() } fn chunk(&self) -> &[u8] { @@ -178,7 +178,10 @@ where U: BufMut, { fn remaining_mut(&self) -> usize { - self.a.remaining_mut() + self.b.remaining_mut() + self.a + .remaining_mut() + .checked_add(self.b.remaining_mut()) + .unwrap() } fn chunk_mut(&mut self) -> &mut UninitSlice { |