mirror of
https://github.com/nginx/nginx.git
synced 2025-06-07 17:52:38 +08:00
fix segfault when $host is used and
*) request is "GET http://host" without CR or LF, or timed out *) request is "GET http://host" with a large blank space
This commit is contained in:
parent
c996d3250d
commit
03011fa512
@ -1104,7 +1104,9 @@ ngx_http_alloc_large_header_buffer(ngx_http_request_t *r,
|
|||||||
|
|
||||||
if (r->host_start) {
|
if (r->host_start) {
|
||||||
r->host_start = new + (r->host_start - old);
|
r->host_start = new + (r->host_start - old);
|
||||||
r->host_end = new + (r->host_end - old);
|
if (r->host_end) {
|
||||||
|
r->host_end = new + (r->host_end - old);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r->port_start) {
|
if (r->port_start) {
|
||||||
|
@ -678,9 +678,13 @@ ngx_http_variable_host(ngx_http_request_t *r, ngx_http_variable_value_t *v,
|
|||||||
v->data = r->server_name.data;
|
v->data = r->server_name.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else if (r->host_end) {
|
||||||
v->len = r->host_end - r->host_start;
|
v->len = r->host_end - r->host_start;
|
||||||
v->data = r->host_start;
|
v->data = r->host_start;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
v->not_found = 1;
|
||||||
|
return NGX_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
v->valid = 1;
|
v->valid = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user