From 7e932d6a50efe3e750cc87f0729cad6ab75aad9f Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Fri, 12 Nov 2004 14:35:09 +0000 Subject: nginx-0.1.7-RELEASE import *) Bugfix: on FreeBSD the segmentation fault may occur if the size of the transferred file was changed; the bug had appeared in 0.1.5. --- docs/xml/nginx/changes.xml | 18 ++++++++++++++++++ src/core/nginx.h | 2 +- src/http/modules/ngx_http_static_handler.c | 1 + src/os/unix/ngx_channel.c | 4 ++-- src/os/unix/ngx_socket.h | 2 +- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml index 48f48c0fd..a8257bf93 100644 --- a/docs/xml/nginx/changes.xml +++ b/docs/xml/nginx/changes.xml @@ -6,6 +6,24 @@ title="nginx"> + + + + +при использовании sendfile, если передаваемый файл менялся, то мог +произойти segmentation fault на FreeBSD; +ошибка появилась в 0.1.2. + + +on FreeBSD the segmentation fault may occure if the size of the transferred +file was changed; +bug appeared in 0.1.2. + + + + + + diff --git a/src/core/nginx.h b/src/core/nginx.h index a8c5ca1ba..529c43da5 100644 --- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,7 +8,7 @@ #define _NGINX_H_INCLUDED_ -#define NGINX_VER "nginx/0.1.6" +#define NGINX_VER "nginx/0.1.7" #define NGINX_VAR "NGINX" #define NGX_NEWPID_EXT ".newbin" diff --git a/src/http/modules/ngx_http_static_handler.c b/src/http/modules/ngx_http_static_handler.c index 12cf5b39d..4cc0de1c2 100644 --- a/src/http/modules/ngx_http_static_handler.c +++ b/src/http/modules/ngx_http_static_handler.c @@ -530,6 +530,7 @@ static ngx_int_t ngx_http_static_handler(ngx_http_request_t *r) b->file_last = ngx_file_size(&fi); b->file->fd = fd; + b->file->name = name; b->file->log = log; out.buf = b; diff --git a/src/os/unix/ngx_channel.c b/src/os/unix/ngx_channel.c index 5c5a5e10b..0bfbd0de6 100644 --- a/src/os/unix/ngx_channel.c +++ b/src/os/unix/ngx_channel.c @@ -233,10 +233,10 @@ ngx_int_t ngx_add_channel_event(ngx_cycle_t *cycle, ngx_fd_t fd, void ngx_close_channel(ngx_fd_t *fd, ngx_log_t *log) { if (close(fd[0]) == -1) { - ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "close() failed"); + ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "close() channel failed"); } if (close(fd[1]) == -1) { - ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "close() failed"); + ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "close() channel failed"); } } diff --git a/src/os/unix/ngx_socket.h b/src/os/unix/ngx_socket.h index c6eb9413f..4dcf924e0 100644 --- a/src/os/unix/ngx_socket.h +++ b/src/os/unix/ngx_socket.h @@ -54,7 +54,7 @@ int ngx_tcp_push(ngx_socket_t s); #define ngx_shutdown_socket_n "shutdown()" #define ngx_close_socket close -#define ngx_close_socket_n "close()" +#define ngx_close_socket_n "close() socket" #endif /* _NGX_SOCKET_H_INCLUDED_ */ -- cgit v1.2.3