Fix parsing of configurations if the configuration file does not end with
an LF.

This patch fixes GitHub issue #704. It's a regression in
9e1758efbd68c8b1d27e17e2abe4444e110f3ebe which is 2.2 specific. No backport
needed.
---
 src/cfgparse.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/cfgparse.c b/src/cfgparse.c
index fdbf3a406..241a6ac7d 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -1905,8 +1905,15 @@ next_line:
 
                readbytes = 0;
 
-               /* kill trailing LF */
-               *(end - 1) = 0;
+               if (*(end-1) != '\n') {
+                       ha_warning("parsing [%s:%d]: line is not terminated by 
a newline (LF / '\\n').\n",
+                                  file, linenum);
+                       err_code |= ERR_WARN;
+               }
+               else {
+                       /* kill trailing LF */
+                       *(end - 1) = 0;
+               }
 
                /* skip leading spaces */
                while (isspace((unsigned char)*line))
-- 
2.27.0


Reply via email to