mirror of
https://github.com/nginx/nginx.git
synced 2024-12-23 15:40:03 -06:00
too long parameter error
This commit is contained in:
parent
a1bccd199e
commit
6d09950cd8
@ -436,7 +436,7 @@ ngx_conf_read_token(ngx_conf_t *cf)
|
|||||||
size_t len;
|
size_t len;
|
||||||
ssize_t n;
|
ssize_t n;
|
||||||
ngx_uint_t found, need_space, last_space, sharp_comment, variable;
|
ngx_uint_t found, need_space, last_space, sharp_comment, variable;
|
||||||
ngx_uint_t quoted, s_quoted, d_quoted;
|
ngx_uint_t quoted, s_quoted, d_quoted, start_line;
|
||||||
ngx_str_t *word;
|
ngx_str_t *word;
|
||||||
ngx_buf_t *b;
|
ngx_buf_t *b;
|
||||||
|
|
||||||
@ -450,6 +450,7 @@ ngx_conf_read_token(ngx_conf_t *cf)
|
|||||||
cf->args->nelts = 0;
|
cf->args->nelts = 0;
|
||||||
b = cf->conf_file->buffer;
|
b = cf->conf_file->buffer;
|
||||||
start = b->pos;
|
start = b->pos;
|
||||||
|
start_line = cf->conf_file->line;
|
||||||
|
|
||||||
for ( ;; ) {
|
for ( ;; ) {
|
||||||
|
|
||||||
@ -476,22 +477,32 @@ ngx_conf_read_token(ngx_conf_t *cf)
|
|||||||
return NGX_CONF_FILE_DONE;
|
return NGX_CONF_FILE_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (b->pos - start) {
|
len = b->pos - start;
|
||||||
ngx_memcpy(b->start, start, b->pos - start);
|
|
||||||
|
if (len == ngx_pagesize) {
|
||||||
|
cf->conf_file->line = start_line;
|
||||||
|
|
||||||
|
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||||
|
"too long parameter \"%*s...\" started",
|
||||||
|
10, start);
|
||||||
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
n = ngx_read_file(&cf->conf_file->file,
|
if (len) {
|
||||||
b->start + (b->pos - start),
|
ngx_memcpy(b->start, start, len);
|
||||||
b->end - (b->start + (b->pos - start)),
|
}
|
||||||
|
|
||||||
|
n = ngx_read_file(&cf->conf_file->file, b->start + len,
|
||||||
|
b->end - (b->start + len),
|
||||||
cf->conf_file->file.offset);
|
cf->conf_file->file.offset);
|
||||||
|
|
||||||
if (n == NGX_ERROR) {
|
if (n == NGX_ERROR) {
|
||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
b->pos = b->start + (b->pos - start);
|
b->pos = b->start + len;
|
||||||
start = b->start;
|
|
||||||
b->last = b->pos + n;
|
b->last = b->pos + n;
|
||||||
|
start = b->start;
|
||||||
}
|
}
|
||||||
|
|
||||||
ch = *b->pos++;
|
ch = *b->pos++;
|
||||||
@ -545,6 +556,7 @@ ngx_conf_read_token(ngx_conf_t *cf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
start = b->pos - 1;
|
start = b->pos - 1;
|
||||||
|
start_line = cf->conf_file->line;
|
||||||
|
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user