From d3f20a0a1049feea29ae85114a1709456bdd7057 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fabian=20Gr=C3=BCnbichler?= Date: Wed, 10 Jun 2020 15:22:53 +0200 Subject: [PATCH] parse_number: prevent panic on empty input MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit if data is empty or the caller requested 0 digits, we can return early. Signed-off-by: Fabian Grünbichler --- src/main.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main.rs b/src/main.rs index 94a6247..613cecd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2187,6 +2187,9 @@ fn parse_qid(data: &[u8], max: usize) -> Option<(&[u8], &[u8])> { /// Parse a number. Returns a tuple of (parsed_number, remaining_text) or None. fn parse_number(data: &[u8], max_digits: usize) -> Option<(usize, &[u8])> { let max = max_digits.min(data.len()); + if max == 0 { + return None; + } match data.iter().take(max).position(|b| !b.is_ascii_digit()) { Some(n) if n == 0 => None, -- 2.39.5