Postpone filter: handled ngx_http_postpone_filter_add() failures.

In particular, if ngx_http_postpone_filter_add() fails in ngx_chain_add_copy(),
the output chain of the postponed request was left in an invalid state.
This commit is contained in:
Sergey Kandaurov 2017-10-16 13:13:25 +03:00
parent 77c7875a7b
commit fdbf551602

View File

@ -63,7 +63,10 @@ ngx_http_postpone_filter(ngx_http_request_t *r, ngx_chain_t *in)
if (r != c->data) {
if (in) {
ngx_http_postpone_filter_add(r, in);
if (ngx_http_postpone_filter_add(r, in) != NGX_OK) {
return NGX_ERROR;
}
return NGX_OK;
}
@ -86,7 +89,9 @@ ngx_http_postpone_filter(ngx_http_request_t *r, ngx_chain_t *in)
}
if (in) {
ngx_http_postpone_filter_add(r, in);
if (ngx_http_postpone_filter_add(r, in) != NGX_OK) {
return NGX_ERROR;
}
}
do {