comparison src/http/ngx_http_request.c @ 4471:b19a651471d9

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
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 13 Feb 2012 15:33:08 +0000
parents d620f497c50f
children c95b828912a3
comparison
equal deleted inserted replaced
4470:d9bf6caf0371 4471:b19a651471d9
2008 pr = r->parent; 2008 pr = r->parent;
2009 2009
2010 if (r == c->data) { 2010 if (r == c->data) {
2011 2011
2012 r->main->count--; 2012 r->main->count--;
2013 r->main->subrequests++;
2013 2014
2014 if (!r->logged) { 2015 if (!r->logged) {
2015 2016
2016 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); 2017 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
2017 2018