From 1b0ad6ee72179fef479bfae7c8c4bfd5ac834c29 Mon Sep 17 00:00:00 2001 From: Maxim Dounin Date: Mon, 13 Feb 2012 15:33:08 +0000 Subject: Core: protection from subrequest loops. Without the protection, subrequest loop results in r->count overflow and SIGSEGV. Protection was broken in 0.7.25. Note that this also limits number of parallel subrequests. This wasn't exactly the case before 0.7.25 as local subrequests were completed directly. See here for details: http://nginx.org/pipermail/nginx-ru/2010-February/032184.html --- src/http/ngx_http_request.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/http/ngx_http_request.c') diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index 2b3f0065b..c35d550a2 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -2010,6 +2010,7 @@ ngx_http_finalize_request(ngx_http_request_t *r, ngx_int_t rc) if (r == c->data) { r->main->count--; + r->main->subrequests++; if (!r->logged) { -- cgit v1.2.3