Postpone filter: prevented uninitialized r->out.

The r->out chain link could be left uninitialized in case of error.
A segfault could happen if the subrequest handler accessed it.
The issue was introduced in commit 20f139e9ffa8.
This commit is contained in:
Roman Arutyunyan 2018-03-01 18:38:39 +03:00
parent 7d74b74e7f
commit 1d0b83a9e3
1 changed files with 5 additions and 5 deletions

View File

@ -191,11 +191,6 @@ ngx_http_postpone_filter_in_memory(ngx_http_request_t *r, ngx_chain_t *in)
"http postpone filter in memory");
if (r->out == NULL) {
r->out = ngx_alloc_chain_link(r->pool);
if (r->out == NULL) {
return NGX_ERROR;
}
clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
if (r->headers_out.content_length_n != -1) {
@ -218,6 +213,11 @@ ngx_http_postpone_filter_in_memory(ngx_http_request_t *r, ngx_chain_t *in)
b->last_buf = 1;
r->out = ngx_alloc_chain_link(r->pool);
if (r->out == NULL) {
return NGX_ERROR;
}
r->out->buf = b;
r->out->next = NULL;
}