From d7abe889accfc4a8e41d97d5f2327fde0ce9ca64 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Tue, 30 Oct 2018 00:50:20 +0100 Subject: sid: fix off by one parsing bug In the string representation, hyphen is always succeeded by a number so we need to terminate at input length minus one. --- sid.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sid.ml') diff --git a/sid.ml b/sid.ml index a2590fd..c6c7d3d 100644 --- a/sid.ml +++ b/sid.ml @@ -94,7 +94,7 @@ module StringFmt = struct let p = 4 in let p, ia = read_decimal_u64 s p in let sa = ref [] and p' = ref p in - while !p' < n && List.length !sa < max_subauth_count do + while !p' < n - 1 && List.length !sa < max_subauth_count do expect_char s '-' !p'; let np, d = read_decimal_u32 s (!p' + 1) in sa := d :: !sa; -- cgit v1.2.3