summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2010-12-14 11:06:03 +0000
committerJonathan Kolb <jon@b0g.us>2010-12-14 11:06:03 +0000
commit7e87a797e8206bbdf1edd5eaf5cc4154d5bce052 (patch)
tree311dff3248b12359e2210f3041c0cde59d3c93bd
parentdf5fa5fcb16c6fd65657add97be5f056b58afa36 (diff)
downloadnginx-7e87a797e8206bbdf1edd5eaf5cc4154d5bce052.tar.gz
Changes with nginx 0.8.54 14 Dec 2010v0.8.54
*) Bugfix: if there was a single server for given IPv6 address:port pair, then captures in regular expressions in a "server_name" directive did not work. *) Bugfix: a segmentation fault might occur in a worker process, if the "auth_basic" directive was used. Thanks to Michail Laletin. *) Bugfix: compatibility with ngx_http_eval_module; the bug had appeared in 0.8.42.
-rw-r--r--CHANGES18
-rw-r--r--CHANGES.ru16
-rw-r--r--src/core/nginx.h4
-rw-r--r--src/http/modules/perl/nginx.pm2
-rw-r--r--src/http/ngx_http.c8
-rw-r--r--src/http/ngx_http_core_module.c6
-rw-r--r--src/os/unix/ngx_user.c8
7 files changed, 49 insertions, 13 deletions
diff --git a/CHANGES b/CHANGES
index d88a74b31..7f8d01338 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,18 @@
+Changes with nginx 0.8.54 14 Dec 2010
+
+ *) Bugfix: if there was a single server for given IPv6 address:port
+ pair, then captures in regular expressions in a "server_name"
+ directive did not work.
+
+ *) Bugfix: a segmentation fault might occur in a worker process, if the
+ "auth_basic" directive was used.
+ Thanks to Michail Laletin.
+
+ *) Bugfix: compatibility with ngx_http_eval_module; the bug had
+ appeared in 0.8.42.
+
+
Changes with nginx 0.8.53 18 Oct 2010
*) Feature: now the "error_page" directive allows to change a status
@@ -1204,7 +1218,7 @@ Changes with nginx 0.7.44 23 Mar 2009
*) Bugfix: the "try_files" directive might test incorrectly directories.
- *) Bugfix: if there is the single server for given address:port pair,
+ *) Bugfix: if there was a single server for given address:port pair,
then captures in regular expressions in a "server_name" directive
did not work.
@@ -1558,7 +1572,7 @@ Changes with nginx 0.7.18 13 Oct 2008
*) Bugfix: the "http_503" parameter of the "proxy_next_upstream" or
"fastcgi_next_upstream" directives did not work.
- *) Bugfix: nginx might send a "Transfer-Encoding: chunked" heaer line
+ *) Bugfix: nginx might send a "Transfer-Encoding: chunked" header line
for HEAD requests.
*) Bugfix: now accept threshold depends on worker_connections.
diff --git a/CHANGES.ru b/CHANGES.ru
index be2892166..6fb41f5c4 100644
--- a/CHANGES.ru
+++ b/CHANGES.ru
@@ -1,4 +1,18 @@
+Изменения в nginx 0.8.54 14.12.2010
+
+ *) Исправление: если для пары IPv6-адрес:порт описан только один
+ сервер, то выделения в регулярных выражениях в директиве server_name
+ не работали.
+
+ *) Исправление: при использовании директивы auth_basic в рабочем
+ процессе мог произойти segmentation fault.
+ Спасибо Михаилу Лалетину.
+
+ *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
+ появилась в 0.8.42.
+
+
Изменения в nginx 0.8.53 18.10.2010
*) Добавление: теперь директива error_page позволяет менять код статуса
@@ -7,7 +21,7 @@
*) Добавление: директива gzip_disable поддерживает специальную маску
degradation.
- *) Исправление: при использовании файлового AIO, могла происходить
+ *) Исправление: при использовании файлового AIO могла происходить
утечка сокетов.
Спасибо Максиму Дунину.
diff --git a/src/core/nginx.h b/src/core/nginx.h
index 208a5f634..2a60c796e 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,8 +8,8 @@
#define _NGINX_H_INCLUDED_
-#define nginx_version 8053
-#define NGINX_VERSION "0.8.53"
+#define nginx_version 8054
+#define NGINX_VERSION "0.8.54"
#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 faff340e2..e403459bc 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.53';
+our $VERSION = '0.8.54';
require XSLoader;
XSLoader::load('nginx', $VERSION);
diff --git a/src/http/ngx_http.c b/src/http/ngx_http.c
index 4ecd50ce8..9e78ac441 100644
--- a/src/http/ngx_http.c
+++ b/src/http/ngx_http.c
@@ -1870,8 +1870,12 @@ ngx_http_add_addrs6(ngx_conf_t *cf, ngx_http_port_t *hport,
if (addr[i].hash.buckets == NULL
&& (addr[i].wc_head == NULL
|| addr[i].wc_head->hash.buckets == NULL)
- && (addr[i].wc_head == NULL
- || addr[i].wc_head->hash.buckets == NULL))
+ && (addr[i].wc_tail == NULL
+ || addr[i].wc_tail->hash.buckets == NULL)
+#if (NGX_PCRE)
+ && addr[i].nregex == 0
+#endif
+ )
{
continue;
}
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 0345be965..488688ae2 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -910,7 +910,11 @@ ngx_http_core_rewrite_phase(ngx_http_request_t *r, ngx_http_phase_handler_t *ph)
return NGX_AGAIN;
}
- /* rc == NGX_OK || rc == NGX_ERROR || rc == NGX_HTTP_... */
+ if (rc == NGX_DONE) {
+ return NGX_OK;
+ }
+
+ /* NGX_OK, NGX_AGAIN, NGX_ERROR, NGX_HTTP_... */
ngx_http_finalize_request(r, rc);
diff --git a/src/os/unix/ngx_user.c b/src/os/unix/ngx_user.c
index 4bad1c307..165c6a46b 100644
--- a/src/os/unix/ngx_user.c
+++ b/src/os/unix/ngx_user.c
@@ -41,11 +41,11 @@ ngx_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted)
err = ngx_errno;
if (err == 0) {
- len = ngx_strlen(value);
+ len = ngx_strlen(value) + 1;
*encrypted = ngx_pnalloc(pool, len);
if (*encrypted) {
- ngx_memcpy(*encrypted, value, len + 1);
+ ngx_memcpy(*encrypted, value, len);
return NGX_OK;
}
}
@@ -79,11 +79,11 @@ ngx_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted)
value = crypt((char *) key, (char *) salt);
if (value) {
- len = ngx_strlen(value);
+ len = ngx_strlen(value) + 1;
*encrypted = ngx_pnalloc(pool, len);
if (*encrypted) {
- ngx_memcpy(*encrypted, value, len + 1);
+ ngx_memcpy(*encrypted, value, len);
}
#if (NGX_THREADS && NGX_NONREENTRANT_CRYPT)