From: Timo Sirainen Date: Thu, 8 Oct 2020 07:41:52 +0000 (+0300) Subject: lib: json-parser - Fix skipping strings with non-blocking input X-Git-Tag: 2.3.13~104 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c4377e82edc838fbafd7e1a7033c30a6629b1ac;p=thirdparty%2Fdovecot%2Fcore.git lib: json-parser - Fix skipping strings with non-blocking input The skipping could have accessed memory outside the allocated string. This might have resulted in a crash, or caused JSON parsing to fail. --- diff --git a/src/lib/json-parser.c b/src/lib/json-parser.c index ba35ef495d..a4fb1865ed 100644 --- a/src/lib/json-parser.c +++ b/src/lib/json-parser.c @@ -183,7 +183,10 @@ static int json_skip_string(struct json_parser *parser) return 1; } if (*parser->data == '\\') { - switch (*++parser->data) { + parser->data++; + if (parser->data == parser->end) + break; + switch (*parser->data) { case '"': case '\\': case '/':