]> git.kaiwu.me - nginx.git/commitdiff
merge r3945:
authorIgor Sysoev <igor@sysoev.ru>
Tue, 19 Jul 2011 14:15:50 +0000 (14:15 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 19 Jul 2011 14:15:50 +0000 (14:15 +0000)
fix segfault if cache key is larger than upstream buffer size
patch by Lanshun Zhou

src/http/ngx_http_upstream.c

index 4e3c3ed76f3a025afa9e924aa2488f794abd3088..e9aa9f1d36056779f69bc86776e393ab4ac16278 100644 (file)
@@ -620,6 +620,15 @@ ngx_http_upstream_cache(ngx_http_request_t *r, ngx_http_upstream_t *u)
 
     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;