From 7b190b41b0d9885e523f3efd9efcbf94b6abe961 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Tue, 7 Jun 2005 15:56:31 +0000 Subject: nginx-0.1.35-RELEASE import *) Feature: the "working_directory" directive. *) Feature: the "port_in_redirect" directive. *) Bugfix: the segmentation fault was occurred if the backend response header was in several packets; the bug had appeared in 0.1.29. *) Bugfix: if more than 10 servers were configured or some server did not use the "listen" directive, then the segmentation fault was occurred on the start. *) Bugfix: the segmentation fault might occur if the response was bigger than the temporary file. *) Bugfix: nginx returned the 400 response on requests like "GET http://www.domain.com/uri HTTP/1.0"; the bug had appeared in 0.1.28. --- src/event/ngx_event_pipe.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/event') diff --git a/src/event/ngx_event_pipe.c b/src/event/ngx_event_pipe.c index 5d26405e2..e18621167 100644 --- a/src/event/ngx_event_pipe.c +++ b/src/event/ngx_event_pipe.c @@ -210,6 +210,10 @@ static ngx_int_t ngx_event_pipe_read_upstream(ngx_event_pipe_t *p) ngx_log_debug1(NGX_LOG_DEBUG_EVENT, p->log, 0, "pipe temp offset: %O", p->temp_file->offset); + if (rc == NGX_BUSY) { + break; + } + if (rc == NGX_AGAIN) { if (ngx_event_flags & NGX_USE_LEVEL_EVENT && p->upstream->read->active @@ -617,6 +621,10 @@ static ngx_int_t ngx_event_pipe_write_chain_to_temp_file(ngx_event_pipe_t *p) ngx_log_debug1(NGX_LOG_DEBUG_EVENT, p->log, 0, "size: %z", size); + if (ll == NULL) { + return NGX_BUSY; + } + if (cl) { p->in = cl; *ll = NULL; -- cgit