mirror of
https://github.com/nginx/nginx.git
synced 2025-06-07 17:52:38 +08:00
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:
parent
3b1589173f
commit
dd8e1e178c
@ -656,13 +656,14 @@ ngx_conf_read_token(ngx_conf_t *cf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (last_space) {
|
if (last_space) {
|
||||||
if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
start = b->pos - 1;
|
start = b->pos - 1;
|
||||||
start_line = cf->conf_file->line;
|
start_line = cf->conf_file->line;
|
||||||
|
|
||||||
|
if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
|
|
||||||
case ';':
|
case ';':
|
||||||
|
Loading…
Reference in New Issue
Block a user