diff --git a/quinn-proto/src/packet.rs b/quinn-proto/src/packet.rs index d6f6c8ca7..f0f9f4f8f 100644 --- a/quinn-proto/src/packet.rs +++ b/quinn-proto/src/packet.rs @@ -514,7 +514,11 @@ impl PlainHeader { let first = buf.get::()?; if first & LONG_HEADER_FORM == 0 { let spin = first & SPIN_BIT != 0; - let dst_cid = ConnectionId::new(&buf.bytes()[..local_cid_len]); + let dst_cid = ConnectionId::new( + &buf.bytes() + .get(..local_cid_len) + .ok_or(PacketDecodeError::InvalidHeader("cid out of bounds"))?, + ); buf.advance(local_cid_len); Ok(PlainHeader::Short {