# HG changeset patch # User Igor Sysoev # Date 1311084950 0 # Node ID 7c1c2508286567c16819fff8f7d6e92ac6f9acc1 # Parent 4d61547bbc2adff5b4886a2fec389e7b696172fd 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 @@ -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;