From e6291956e7ad622dd2e4ac864caf05c93db417d3 Mon Sep 17 00:00:00 2001 From: Tim Duesterhus Date: Thu, 7 May 2020 19:21:31 +0200 Subject: [PATCH] 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. --- src/cfgparse.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cfgparse.c b/src/cfgparse.c index 5627fe280..5815da0a9 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 = '"';