diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2009-10-26 15:54:29 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2009-10-26 15:54:29 +0000 |
| commit | f7f963d7792fdf19ad11888d3a3e7460ea88dfd0 (patch) | |
| tree | 33fa551ca1e0e3d61474dad1bf148de45338b7b7 /src/http/ngx_http_request.c | |
| parent | df30d3db5655ce895726efd7ddff81f971727dbe (diff) | |
| download | nginx-f7f963d7792fdf19ad11888d3a3e7460ea88dfd0.tar.gz nginx-f7f963d7792fdf19ad11888d3a3e7460ea88dfd0.tar.bz2 | |
merge r2903, r2911, r2912, r3002:
fix various failures handling
Diffstat (limited to 'src/http/ngx_http_request.c')
| -rw-r--r-- | src/http/ngx_http_request.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index 4930b502f..ebf7ca750 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -451,13 +451,15 @@ ngx_http_init_request(ngx_event_t *rev) sizeof(ngx_table_elt_t)) != NGX_OK) { - ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); + ngx_destroy_pool(r->pool); + ngx_http_close_connection(c); return; } r->ctx = ngx_pcalloc(r->pool, sizeof(void *) * ngx_http_max_module); if (r->ctx == NULL) { - ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); + ngx_destroy_pool(r->pool); + ngx_http_close_connection(c); return; } @@ -466,7 +468,8 @@ ngx_http_init_request(ngx_event_t *rev) r->variables = ngx_pcalloc(r->pool, cmcf->variables.nelts * sizeof(ngx_http_variable_value_t)); if (r->variables == NULL) { - ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); + ngx_destroy_pool(r->pool); + ngx_http_close_connection(c); return; } |
