changeset 858:4766f61a8221

fix endless loop when too many FastCGI sent too many to stderr
author Igor Sysoev <igor@sysoev.ru>
date Sat, 18 Nov 2006 21:46:16 +0000
parents 739b997da512
children d1e8c59a50ee
files src/event/ngx_event_pipe.c
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/ngx_event_pipe.c
+++ b/src/event/ngx_event_pipe.c
@@ -295,6 +295,7 @@ ngx_event_pipe_read_upstream(ngx_event_p
 
         p->read_length += n;
         cl = chain;
+        p->free_raw_bufs = NULL;
 
         while (cl && n > 0) {
 
@@ -322,7 +323,14 @@ ngx_event_pipe_read_upstream(ngx_event_p
             }
         }
 
-        p->free_raw_bufs = cl;
+        if (cl) {
+            while (cl->next) {
+                cl = cl->next;
+            }
+
+            cl->next = p->free_raw_bufs;
+            p->free_raw_bufs = cl;
+        }
     }
 
 #if (NGX_DEBUG)