diff options
-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.7.69 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.7.68 14 Dec 2010 *) Bugfix: if there was a single server for given IPv6 address:port @@ -4485,7 +4492,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 5db177598..1b1561359 100644 --- a/CHANGES.ru +++ b/CHANGES.ru @@ -1,4 +1,11 @@ +Изменения в nginx 0.7.69 19.07.2011 + + *) Исправление: при использовании кэширования в рабочем процессе мог + произойти segmentation fault. + Спасибо Lanshun Zhou. + + Изменения в nginx 0.7.68 14.12.2010 *) Исправление: если для пары IPv6-адрес:порт описан только один diff --git a/src/core/nginx.h b/src/core/nginx.h index 590333fc7..f2ccaf931 100644 --- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,8 +8,8 @@ #define _NGINX_H_INCLUDED_ -#define nginx_version 7068 -#define NGINX_VERSION "0.7.68" +#define nginx_version 7069 +#define NGINX_VERSION "0.7.69" #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 15c2650bf..a0e5e8431 100644 --- a/src/http/modules/perl/nginx.pm +++ b/src/http/modules/perl/nginx.pm @@ -47,7 +47,7 @@ our @EXPORT = qw( HTTP_INSUFFICIENT_STORAGE ); -our $VERSION = '0.7.68'; +our $VERSION = '0.7.69'; require XSLoader; XSLoader::load('nginx', $VERSION); diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c index 4e3c3ed76..e9aa9f1d3 100644 --- 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_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; |