diff options
author | 2019-02-09 15:51:11 +0000 | |
---|---|---|
committer | 2019-02-09 15:52:20 +0000 | |
commit | 770dbc7ed9f2b2fb70d5d3ea75f446b4ef02ca58 (patch) | |
tree | d7bc3f7817e280468bf81f1c96832d9d7a8a4718 /src/octets.rs | |
parent | 75af0bed0dbc46b56049b7896b3287deaf2160cc (diff) | |
download | quiche-770dbc7ed9f2b2fb70d5d3ea75f446b4ef02ca58.tar.gz quiche-770dbc7ed9f2b2fb70d5d3ea75f446b4ef02ca58.tar.zst quiche-770dbc7ed9f2b2fb70d5d3ea75f446b4ef02ca58.zip |
octets: panic on impossible cases
Diffstat (limited to '')
-rw-r--r-- | src/octets.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/octets.rs b/src/octets.rs index 0a6666d9..866c7206 100644 --- a/src/octets.rs +++ b/src/octets.rs @@ -184,7 +184,7 @@ impl<'a> Octets<'a> { 1 => 2, 2 => 4, 3 => 8, - _ => return Err(Error::BufferTooShort), + _ => unreachable!(), }; if len > self.cap() { @@ -203,7 +203,7 @@ impl<'a> Octets<'a> { 2 => u64::from(b.get_u16()?), 4 => u64::from(b.get_u32()?), 8 => b.get_u64()?, - _ => return Err(Error::BufferTooShort), + _ => unreachable!(), }; Ok(out) @@ -228,8 +228,8 @@ impl<'a> Octets<'a> { let buf = self.put_u64(v)?; buf[0] |= 0xc0; } else { - return Err(Error::BufferTooShort); - }; + panic!("value is too large for varint"); + } Ok(()) } @@ -585,6 +585,14 @@ mod tests { } #[test] + #[should_panic] + fn varint_too_large() { + let mut d = [0; 3]; + let mut b = Octets::with_slice(&mut d); + assert!(b.put_varint(std::u64::MAX).is_err()); + } + + #[test] fn put_u() { let mut d = [0; 18]; |