Merge of r4947: xslt: prevented infinite loop.

If XSLT transformation failed and error 500 was handled in the same
location, an infinite loop occured that exhausted the stack.
This commit is contained in:
Maxim Dounin 2013-02-10 03:00:55 +00:00
parent deee4cafa0
commit 374b73c43c

View File

@ -307,7 +307,7 @@ ngx_http_xslt_send(ngx_http_request_t *r, ngx_http_xslt_filter_ctx_t *ctx,
ctx->done = 1; ctx->done = 1;
if (b == NULL) { if (b == NULL) {
return ngx_http_filter_finalize_request(r, NULL, return ngx_http_filter_finalize_request(r, &ngx_http_xslt_filter_module,
NGX_HTTP_INTERNAL_SERVER_ERROR); NGX_HTTP_INTERNAL_SERVER_ERROR);
} }
@ -315,7 +315,7 @@ ngx_http_xslt_send(ngx_http_request_t *r, ngx_http_xslt_filter_ctx_t *ctx,
if (cln == NULL) { if (cln == NULL) {
ngx_free(b->pos); ngx_free(b->pos);
return ngx_http_filter_finalize_request(r, NULL, return ngx_http_filter_finalize_request(r, &ngx_http_xslt_filter_module,
NGX_HTTP_INTERNAL_SERVER_ERROR); NGX_HTTP_INTERNAL_SERVER_ERROR);
} }