From 8a64254c9520d7b954c852787966f2eb8da97180 Mon Sep 17 00:00:00 2001 From: Flakebi Date: Mon, 24 Dec 2018 00:23:52 +0100 Subject: [PATCH] Return error on invalid length --- src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index cffec33..7e17239 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -374,6 +374,9 @@ fn from_der_(i: &[u8], start_offset: usize) let soff = start_offset + index; let (tag, constructed, class) = decode_tag(i, &mut index); let len = decode_length(i, &mut index)?; + if i.len() < index + len { + return Err(ASN1DecodeErr::LengthTooLarge(index + len)); + } let body = &i[index .. (index + len)]; if class != ASN1Class::Universal {