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