# HG changeset patch # User Igor Sysoev # Date 1311083576 0 # Node ID 7cccdc1809a23a422a9a7522c0bafe4150eaf916 # Parent 7890c9617eb59d8879d0cadfc176d556ffd456cf merge r3945: fix segfault if cache key is larger than upstream buffer size patch by Lanshun Zhou diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c --- 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;