diff options
author | Ruslan Ermilov <ru@nginx.com> | 2012-12-06 21:22:58 +0000 |
---|---|---|
committer | Ruslan Ermilov <ru@nginx.com> | 2012-12-06 21:22:58 +0000 |
commit | 8e8201486cb52e929feb16446406253dfbe33e99 (patch) | |
tree | ffb92b38ad27881cb79ff184939c47df5adcc89e /src | |
parent | 760c55a702886826813010a2f0b662b87c2fbee0 (diff) | |
download | nginx-8e8201486cb52e929feb16446406253dfbe33e99.tar.gz nginx-8e8201486cb52e929feb16446406253dfbe33e99.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/http/modules/ngx_http_xslt_filter_module.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/http/modules/ngx_http_xslt_filter_module.c b/src/http/modules/ngx_http_xslt_filter_module.c index 94d1c86cc..a6ae1ce02 100644 --- a/src/http/modules/ngx_http_xslt_filter_module.c +++ b/src/http/modules/ngx_http_xslt_filter_module.c @@ -307,7 +307,7 @@ ngx_http_xslt_send(ngx_http_request_t *r, ngx_http_xslt_filter_ctx_t *ctx, ctx->done = 1; 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); } @@ -315,7 +315,7 @@ ngx_http_xslt_send(ngx_http_request_t *r, ngx_http_xslt_filter_ctx_t *ctx, if (cln == NULL) { 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); } |