changeset 445:dc98ed169c03 NGINX_0_7_30

nginx 0.7.30 *) Bugfix: a segmentation fault occurred in worker process, if variables were used in the "fastcgi_pass" and "proxy_pass" directives and host name must be resolved; the bug had appeared in 0.7.29.
author Igor Sysoev <http://sysoev.ru>
date Wed, 24 Dec 2008 00:00:00 +0300
parents afc35e97690d
children 5da91f7cde93
files CHANGES CHANGES.ru src/core/nginx.h src/http/modules/ngx_http_fastcgi_module.c src/http/modules/ngx_http_proxy_module.c src/http/modules/perl/nginx.pm
diffstat 6 files changed, 20 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,12 @@
 
+Changes with nginx 0.7.30                                        24 Dec 2008
+
+    *) Bugfix: a segmentation fault occurred in worker process, if 
+       variables were used in the "fastcgi_pass" and "proxy_pass" 
+       directives and host name must be resolved; the bug had appeared in 
+       0.7.29.
+
+
 Changes with nginx 0.7.29                                        24 Dec 2008
 
     *) Bugfix: the "fastcgi_pass" and "proxy_pass" directives did not 
--- a/CHANGES.ru
+++ b/CHANGES.ru
@@ -1,10 +1,17 @@
 
+Изменения в nginx 0.7.30                                          24.12.2008
+
+    *) Исправление: в рабочем процессе происходил segmentation fault, если 
+       в директивах fastcgi_pass и proxy_pass использовались переменные и 
+       имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
+
+
 Изменения в nginx 0.7.29                                          24.12.2008
 
     *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали 
        переменные при использовании unix domain сокетов.
 
-    *) Исправления в обработке подзапросов; ошибки появилась в 0.7.25.
+    *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
 
     *) Исправление: ответ "100 Continue" выдавался для запросов версии 
        HTTP/1.0; Спасибо Максиму Дунину.
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,7 +8,7 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define NGINX_VERSION      "0.7.29"
+#define NGINX_VERSION      "0.7.30"
 #define NGINX_VER          "nginx/" NGINX_VERSION
 
 #define NGINX_VAR          "NGINX"
--- a/src/http/modules/ngx_http_fastcgi_module.c
+++ b/src/http/modules/ngx_http_fastcgi_module.c
@@ -512,7 +512,7 @@ ngx_http_fastcgi_eval(ngx_http_request_t
         return NGX_ERROR;
     }
 
-    if (u.addrs[0].sockaddr) {
+    if (u.addrs && u.addrs[0].sockaddr) {
         r->upstream->resolved->sockaddr = u.addrs[0].sockaddr;
         r->upstream->resolved->socklen = u.addrs[0].socklen;
         r->upstream->resolved->naddrs = 1;
--- a/src/http/modules/ngx_http_proxy_module.c
+++ b/src/http/modules/ngx_http_proxy_module.c
@@ -614,7 +614,7 @@ ngx_http_proxy_eval(ngx_http_request_t *
         return NGX_ERROR;
     }
 
-    if (u.addrs[0].sockaddr) {
+    if (u.addrs && u.addrs[0].sockaddr) {
         r->upstream->resolved->sockaddr = u.addrs[0].sockaddr;
         r->upstream->resolved->socklen = u.addrs[0].socklen;
         r->upstream->resolved->naddrs = 1;
--- 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.29';
+our $VERSION = '0.7.30';
 
 require XSLoader;
 XSLoader::load('nginx', $VERSION);