From 2428c152a67c06057a98d9d29b08389cb3429c1f Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Tue, 16 Feb 2021 20:44:33 +0000 Subject: [PATCH] Panic on integer overflow in Chain::remaining (#482) Make it safer. --- src/buf/chain.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/buf/chain.rs b/src/buf/chain.rs index d68bc2d0e..8a1598ccf 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 {