From 6e9c16696edf6107e9cc377d539410f5de9198f9 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. (cherry picked from commit e6291956e7ad622dd2e4ac864caf05c93db417d3) Signed-off-by: Christopher Faulet --- src/cfgparse.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cfgparse.c b/src/cfgparse.c index b32e68a..7be15e3 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -1997,6 +1997,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 = '"'; -- 1.7.10.4