summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2008-05-12 09:49:59 +0000
committerJonathan Kolb <jon@b0g.us>2008-05-12 09:49:59 +0000
commitc16d933e31f0dff08a1d9c23df5e43a4d66d4093 (patch)
tree2e1ac55b80bd90865feaa9e0a2c4eeaecc36676c
parent327ac5b118abbfc507876fc3283c4fa097a622bb (diff)
downloadnginx-0.6.31.tar.gz
Changes with nginx 0.6.31 12 May 2008v0.6.31
*) Bugfix: nginx did not process FastCGI response if header was at the end of FastCGI record; bug appeared in 0.6.2. Thanks to Sergey Serov. *) Bugfix: a segmentation fault might occur in worker process if a file was deleted and the "open_file_cache_errors" directive was off.
-rw-r--r--CHANGES12
-rw-r--r--CHANGES.ru14
-rw-r--r--src/core/nginx.h2
-rw-r--r--src/core/ngx_open_file_cache.c25
-rw-r--r--src/http/modules/ngx_http_fastcgi_module.c2
-rw-r--r--src/http/modules/perl/nginx.pm2
6 files changed, 43 insertions, 14 deletions
diff --git a/CHANGES b/CHANGES
index 4c3671c84..572fe9f8f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,14 @@
+Changes with nginx 0.6.31 12 May 2008
+
+ *) Bugfix: nginx did not process FastCGI response if header was at the
+ end of FastCGI record; bug appeared in 0.6.2.
+ Thanks to Sergey Serov.
+
+ *) Bugfix: a segmentation fault might occur in worker process if a file
+ was deleted and the "open_file_cache_errors" directive was off.
+
+
Changes with nginx 0.6.30 29 Apr 2008
*) Change: now if an "include" directive pattern does not match any
@@ -7,7 +17,7 @@ Changes with nginx 0.6.30 29 Apr 2008
*) Feature: now the time in directives may be specified without spaces,
for example, "1h50m".
- *) Bugfix: memory leaks if the "ssl_verify_client" directive was on.
+ *) Bugfix: memory leaks if the "ssl_verify_client" directive was on.
Thanks to Chavelle Vincent.
*) Bugfix: the "sub_filter" directive might set text to change into
diff --git a/CHANGES.ru b/CHANGES.ru
index 5bf68083c..38f832c72 100644
--- a/CHANGES.ru
+++ b/CHANGES.ru
@@ -1,4 +1,16 @@
+Изменения в nginx 0.6.31 12.05.2008
+
+ *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
+ заголовка ответ была в конце записи FastCGI; ошибка появилась в
+ 0.6.2.
+ Спасибо Сергею Серову.
+
+ *) Исправление: при удалении файла и использовании директивы
+ open_file_cache_errors off в рабочем процессе мог произойти
+ segmentation fault.
+
+
Изменения в nginx 0.6.30 29.04.2008
*) Изменение: теперь, если маске, заданной в директиве include, не
@@ -8,7 +20,7 @@
например, "1h50m".
*) Исправление: утечек памяти, если директива ssl_verify_client имела
- значение on.
+ значение on.
Спасибо Chavelle Vincent.
*) Исправление: директива sub_filter могла вставлять заменяемый текст в
diff --git a/src/core/nginx.h b/src/core/nginx.h
index 1a0d3c437..7702f7680 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,7 +8,7 @@
#define _NGINX_H_INCLUDED_
-#define NGINX_VERSION "0.6.30"
+#define NGINX_VERSION "0.6.31"
#define NGINX_VER "nginx/" NGINX_VERSION
#define NGINX_VAR "NGINX"
diff --git a/src/core/ngx_open_file_cache.c b/src/core/ngx_open_file_cache.c
index a1692f101..baf546f07 100644
--- a/src/core/ngx_open_file_cache.c
+++ b/src/core/ngx_open_file_cache.c
@@ -406,20 +406,27 @@ found:
failed:
- if (file && file->count == 0) {
+ if (file) {
ngx_rbtree_delete(&cache->rbtree, &file->node);
cache->current--;
- if (file->fd != NGX_INVALID_FILE) {
- if (ngx_close_file(file->fd) == NGX_FILE_ERROR) {
- ngx_log_error(NGX_LOG_ALERT, pool->log, ngx_errno,
- ngx_close_file_n " \"%s\" failed", file->name);
- }
- }
+ if (file->count == 0) {
- ngx_free(file->name);
- ngx_free(file);
+ if (file->fd != NGX_INVALID_FILE) {
+ if (ngx_close_file(file->fd) == NGX_FILE_ERROR) {
+ ngx_log_error(NGX_LOG_ALERT, pool->log, ngx_errno,
+ ngx_close_file_n " \"%s\" failed",
+ file->name);
+ }
+ }
+
+ ngx_free(file->name);
+ ngx_free(file);
+
+ } else {
+ file->close = 1;
+ }
}
if (of->fd != NGX_INVALID_FILE) {
diff --git a/src/http/modules/ngx_http_fastcgi_module.c b/src/http/modules/ngx_http_fastcgi_module.c
index 5678e21f3..17e8a3dbf 100644
--- a/src/http/modules/ngx_http_fastcgi_module.c
+++ b/src/http/modules/ngx_http_fastcgi_module.c
@@ -1232,7 +1232,7 @@ ngx_http_fastcgi_process_header(ngx_http_request_t *r)
}
if (rc == NGX_OK) {
- return NGX_AGAIN;
+ continue;
}
/* rc == NGX_AGAIN */
diff --git a/src/http/modules/perl/nginx.pm b/src/http/modules/perl/nginx.pm
index 7f781a10e..4fb9cff70 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.6.30';
+our $VERSION = '0.6.31';
require XSLoader;
XSLoader::load('nginx', $VERSION);