Mercurial > hg > nginx
diff src/http/ngx_http_request.c @ 2902:a1a1c7e3fb8d
fix "out of memory" case handling
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 29 May 2009 11:42:55 +0000 |
parents | 512d164a8348 |
children | 5acd98486a33 |
line wrap: on
line diff
--- a/src/http/ngx_http_request.c Fri May 29 09:32:52 2009 +0000 +++ b/src/http/ngx_http_request.c Fri May 29 11:42:55 2009 +0000 @@ -451,13 +451,15 @@ 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 @@ 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; }