changeset 3953:7c1c25082865 stable-0.7

merge r3945: fix segfault if cache key is larger than upstream buffer size patch by Lanshun Zhou
author Igor Sysoev <igor@sysoev.ru>
date Tue, 19 Jul 2011 14:15:50 +0000
parents 4d61547bbc2a
children 2d8bd4f61552
files src/http/ngx_http_upstream.c
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -620,6 +620,15 @@ ngx_http_upstream_cache(ngx_http_request
 
     ngx_http_file_cache_create_key(r);
 
+    if (c->header_start >= u->conf->buffer_size) {
+        ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
+                      "cache key too large, increase upstream buffer size %uz",
+                      u->conf->buffer_size);
+
+        r->cache = NULL;
+        return NGX_DECLINED;
+    }
+
     u->cacheable = 1;
 
     c->min_uses = u->conf->cache_min_uses;