changeset 3948:7cccdc1809a2 stable-0.8

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 13:52:56 +0000
parents 7890c9617eb5
children 8106bf694512
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
@@ -666,6 +666,15 @@ ngx_http_upstream_cache(ngx_http_request
 
         ngx_http_file_cache_create_key(r);
 
+        if (r->cache->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 = r->cache;