Mercurial > hg > nginx
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 Tue Aug 07 02:16:07 2018 +0300 +++ b/src/core/ngx_conf_file.c Thu Aug 09 12:15:42 2018 +0300 @@ -656,13 +656,14 @@ } 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 ';':