From 2bcb442fba7ab64a82e1ea169a7ac5f847a51e23 Mon Sep 17 00:00:00 2001 From: Alex Helfet Date: Sat, 13 Apr 2019 17:25:13 +0100 Subject: [PATCH] Return an error (instead of panicking) when cobs_decoded is too short. --- framed/src/bytes.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/framed/src/bytes.rs b/framed/src/bytes.rs index 04b2d86..befbd18 100644 --- a/framed/src/bytes.rs +++ b/framed/src/bytes.rs @@ -292,6 +292,9 @@ impl Codec { .map_err(|_| Error::CobsDecodeFailed)? }; let cobs_decoded = &dest[0..cobs_decoded_len]; + if cobs_decoded_len < self.checksum().len() { + return Err(Error::EofDuringFrame); + } let payload = &cobs_decoded[0..cobs_decoded_len - self.checksum().len()]; #[cfg(feature = "trace")] {