diff options
author | Igor Sysoev <igor@sysoev.ru> | 2011-07-19 14:00:16 +0000 |
---|---|---|
committer | Jonathan Kolb <jon@b0g.us> | 2011-07-19 14:00:16 +0000 |
commit | 5338c118eef4a4780d0a1d3fc87ece40c9c84dc6 (patch) | |
tree | 0686b924e03149fb04f44c52233924b57f1ce4bc | |
parent | 7e87a797e8206bbdf1edd5eaf5cc4154d5bce052 (diff) | |
download | nginx-0.8.tar.gz |
*) Bugfix: a segmentation fault might occur in a worker process, if a
caching was used.
Thanks to Lanshun Zhou.
-rw-r--r-- | CHANGES | 9 | ||||
-rw-r--r-- | CHANGES.ru | 7 | ||||
-rw-r--r-- | src/core/nginx.h | 4 | ||||
-rw-r--r-- | src/http/modules/perl/nginx.pm | 2 | ||||
-rw-r--r-- | src/http/ngx_http_upstream.c | 9 |
5 files changed, 27 insertions, 4 deletions
@@ -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; |