aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2006-11-18 21:46:16 +0000
committerIgor Sysoev <igor@sysoev.ru>2006-11-18 21:46:16 +0000
commit2573f71e141ce61297b3d9689b56a6d3eb05d940 (patch)
tree1d9f82bc616b16d0e7a2f6bfec456a4d7da4fc1a /src
parent7ef16ce57c21c65657f5c55094aa6d9820fdc6fd (diff)
downloadnginx-2573f71e141ce61297b3d9689b56a6d3eb05d940.tar.gz
nginx-2573f71e141ce61297b3d9689b56a6d3eb05d940.zip
fix endless loop when too many FastCGI sent too many to stderr
Diffstat (limited to 'src')
-rw-r--r--src/event/ngx_event_pipe.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/event/ngx_event_pipe.c b/src/event/ngx_event_pipe.c
index bb371691b..c535357e0 100644
--- 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_pipe_t *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_pipe_t *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)