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.
This commit is contained in:
Maxim Dounin 2018-08-09 12:15:42 +03:00
parent 3b1589173f
commit dd8e1e178c

View File

@ -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 ';':