changeset 7334:f17e313009b0

Skipping spaces in configuration files (ticket #1557). Previously, a chunk of spaces larger than NGX_CONF_BUFFER (4096 bytes) resulted in the "too long parameter" error during parsing such a configuration. This was because the code only set start and start_line on non-whitespace characters, and hence adjacent whitespace characters were preserved when reading additional data from the configuration file. Fix is to always move start and start_line if the last character was a space.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 09 Aug 2018 12:15:42 +0300
parents ba971deb4b44
children fbb683496705
files src/core/ngx_conf_file.c
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -656,13 +656,14 @@ ngx_conf_read_token(ngx_conf_t *cf)
         }
 
         if (last_space) {
+
+            start = b->pos - 1;
+            start_line = cf->conf_file->line;
+
             if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
                 continue;
             }
 
-            start = b->pos - 1;
-            start_line = cf->conf_file->line;
-
             switch (ch) {
 
             case ';':