mirror of
https://github.com/nginx/nginx.git
synced 2025-07-24 14:16:20 +08:00
Output chain: free chain links in ngx_chain_writer().
This commit is contained in:
parent
9131eb11c9
commit
4df7aa6f92
@ -654,7 +654,7 @@ ngx_chain_writer(void *data, ngx_chain_t *in)
|
||||
ngx_chain_writer_ctx_t *ctx = data;
|
||||
|
||||
off_t size;
|
||||
ngx_chain_t *cl;
|
||||
ngx_chain_t *cl, *ln, *chain;
|
||||
ngx_connection_t *c;
|
||||
|
||||
c = ctx->connection;
|
||||
@ -734,15 +734,23 @@ ngx_chain_writer(void *data, ngx_chain_t *in)
|
||||
return NGX_OK;
|
||||
}
|
||||
|
||||
ctx->out = c->send_chain(c, ctx->out, ctx->limit);
|
||||
chain = c->send_chain(c, ctx->out, ctx->limit);
|
||||
|
||||
ngx_log_debug1(NGX_LOG_DEBUG_CORE, c->log, 0,
|
||||
"chain writer out: %p", ctx->out);
|
||||
"chain writer out: %p", chain);
|
||||
|
||||
if (ctx->out == NGX_CHAIN_ERROR) {
|
||||
if (chain == NGX_CHAIN_ERROR) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
for (cl = ctx->out; cl && cl != chain; /* void */) {
|
||||
ln = cl;
|
||||
cl = cl->next;
|
||||
ngx_free_chain(ctx->pool, ln);
|
||||
}
|
||||
|
||||
ctx->out = chain;
|
||||
|
||||
if (ctx->out == NULL) {
|
||||
ctx->last = &ctx->out;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user