From 5338c118eef4a4780d0a1d3fc87ece40c9c84dc6 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Tue, 19 Jul 2011 14:00:16 +0000 Subject: Changes with nginx 0.8.55 19 Jul 2011 *) Bugfix: a segmentation fault might occur in a worker process, if a caching was used. Thanks to Lanshun Zhou. --- CHANGES | 9 ++++++++- CHANGES.ru | 7 +++++++ src/core/nginx.h | 4 ++-- src/http/modules/perl/nginx.pm | 2 +- src/http/ngx_http_upstream.c | 9 +++++++++ 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 7f8d01338..047d44928 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,11 @@ +Changes with nginx 0.8.55 19 Jul 2011 + + *) Bugfix: a segmentation fault might occur in a worker process, if a + caching was used. + Thanks to Lanshun Zhou. + + Changes with nginx 0.8.54 14 Dec 2010 *) Bugfix: if there was a single server for given IPv6 address:port @@ -4981,7 +4988,7 @@ Changes with nginx 0.1.11 02 Dec 2004 Changes with nginx 0.1.10 26 Nov 2004 *) Bugfix: if the request without arguments contains "//", "/./", - "/../" or "%XX" then the lost character in the request line was + "/../" or "%XX" then the last character in the request line was lost; the bug had appeared in 0.1.9. *) Bugfix: the fix in 0.1.9 for the files bigger than 2G on Linux did diff --git a/CHANGES.ru b/CHANGES.ru index 6fb41f5c4..7ddd67a14 100644 --- a/CHANGES.ru +++ b/CHANGES.ru @@ -1,4 +1,11 @@ +Изменения в nginx 0.8.55 19.07.2011 + + *) Исправление: при использовании кэширования в рабочем процессе мог + произойти segmentation fault. + Спасибо Lanshun Zhou. + + Изменения в nginx 0.8.54 14.12.2010 *) Исправление: если для пары IPv6-адрес:порт описан только один diff --git a/src/core/nginx.h b/src/core/nginx.h index 2a60c796e..59c363c0c 100644 --- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,8 +8,8 @@ #define _NGINX_H_INCLUDED_ -#define nginx_version 8054 -#define NGINX_VERSION "0.8.54" +#define nginx_version 8055 +#define NGINX_VERSION "0.8.55" #define NGINX_VER "nginx/" NGINX_VERSION #define NGINX_VAR "NGINX" diff --git a/src/http/modules/perl/nginx.pm b/src/http/modules/perl/nginx.pm index e403459bc..bb89dbf69 100644 --- a/src/http/modules/perl/nginx.pm +++ b/src/http/modules/perl/nginx.pm @@ -48,7 +48,7 @@ our @EXPORT = qw( HTTP_INSUFFICIENT_STORAGE ); -our $VERSION = '0.8.54'; +our $VERSION = '0.8.55'; require XSLoader; XSLoader::load('nginx', $VERSION); diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c index e8d87738f..62f1669c7 100644 --- 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_t *r, ngx_http_upstream_t *u) 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; -- cgit v1.2.1