summaryrefslogtreecommitdiffstats
path: root/usr.sbin/nginx/src/event/ngx_event_pipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/nginx/src/event/ngx_event_pipe.c')
-rw-r--r--usr.sbin/nginx/src/event/ngx_event_pipe.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/usr.sbin/nginx/src/event/ngx_event_pipe.c b/usr.sbin/nginx/src/event/ngx_event_pipe.c
index c2c79837fcf..476d56e30e3 100644
--- a/usr.sbin/nginx/src/event/ngx_event_pipe.c
+++ b/usr.sbin/nginx/src/event/ngx_event_pipe.c
@@ -946,8 +946,15 @@ ngx_event_pipe_add_free_buf(ngx_event_pipe_t *p, ngx_buf_t *b)
return NGX_ERROR;
}
- b->pos = b->start;
- b->last = b->start;
+ if (p->buf_to_file && b->start == p->buf_to_file->start) {
+ b->pos = p->buf_to_file->last;
+ b->last = p->buf_to_file->last;
+
+ } else {
+ b->pos = b->start;
+ b->last = b->start;
+ }
+
b->shadow = NULL;
cl->buf = b;