diff options
author | Igor Sysoev <igor@sysoev.ru> | 2006-11-18 21:46:16 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2006-11-18 21:46:16 +0000 |
commit | 2573f71e141ce61297b3d9689b56a6d3eb05d940 (patch) | |
tree | 1d9f82bc616b16d0e7a2f6bfec456a4d7da4fc1a /src | |
parent | 7ef16ce57c21c65657f5c55094aa6d9820fdc6fd (diff) | |
download | nginx-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.c | 10 |
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) |