From: Maxim Dounin Date: Thu, 9 Aug 2018 09:15:42 +0000 (+0300) Subject: Skipping spaces in configuration files (ticket #1557). X-Git-Tag: release-1.15.3~9 X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/postgres_fdw.c?a=commitdiff_plain;h=dd8e1e178c1a47d51ce85604a169f9179c15c220;p=nginx.git 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. --- diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c index ba454dea8..e92cd33c9 100644 --- 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) { - if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) { - continue; - } start = b->pos - 1; start_line = cf->conf_file->line; + if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) { + continue; + } + switch (ch) { case ';':