From: Tim Duesterhus Date: Thu, 7 May 2020 17:21:31 +0000 (+0200) Subject: BUG/MINOR: cfgparse: Abort parsing the current line if an invalid \x sequence is... X-Git-Tag: v2.2-dev8~105 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e6291956e7ad622dd2e4ac864caf05c93db417d3;p=thirdparty%2Fhaproxy.git BUG/MINOR: cfgparse: Abort parsing the current line if an invalid \x sequence is encountered This fixes OSS Fuzz issue https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=21931. OSS Fuzz detected a hang on configuration parsing for a 200kB line with a large number of invalid escape sequences. Most likely due to the amounts of error output generated. This issue is very minor, because usually generated configurations are to be trusted. The bug exists since at the very least HAProxy 1.4. The patch may be backported if desired. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index 5627fe2801..5815da0a9d 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -1967,6 +1967,7 @@ next_line: else { ha_alert("parsing [%s:%d] : invalid or incomplete '\\x' sequence in '%s'.\n", file, linenum, args[0]); err_code |= ERR_ALERT | ERR_FATAL; + goto next_line; } } else if (line[1] == '"') { *line = '"';