diff options
Diffstat (limited to 'src/event/ngx_event_pipe.c')
-rw-r--r-- | src/event/ngx_event_pipe.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/event/ngx_event_pipe.c b/src/event/ngx_event_pipe.c index bb371691b..59b89b0f9 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,12 @@ ngx_event_pipe_read_upstream(ngx_event_pipe_t *p) } } - p->free_raw_bufs = cl; + if (cl) { + for (ln = cl; ln->next; ln = ln->next) { /* void */ } + + ln->next = p->free_raw_bufs; + p->free_raw_bufs = cl; + } } #if (NGX_DEBUG) |