aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_conf_file.c
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2018-08-09 12:15:42 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2018-08-09 12:15:42 +0300
commitdd8e1e178c1a47d51ce85604a169f9179c15c220 (patch)
tree78d3a3f5776b4369dd02e5587b9e846731bb60e2 /src/core/ngx_conf_file.c
parent3b1589173f28fccb5816669f3ff4c9ac1e9b573c (diff)
downloadnginx-dd8e1e178c1a47d51ce85604a169f9179c15c220.tar.gz
nginx-dd8e1e178c1a47d51ce85604a169f9179c15c220.zip
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.
Diffstat (limited to 'src/core/ngx_conf_file.c')
-rw-r--r--src/core/ngx_conf_file.c7
1 files changed, 4 insertions, 3 deletions
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 ';':