aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-11-09 17:45:56 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-11-09 17:45:56 +0000
commit64bfa87e7305cbc61662a3aa964d29b4f89cef69 (patch)
tree2eeb9b44a00e2ec087defb0504c8046efd0e87fc /src
parent21accae8e58f7db77a74765b340089da2fc5fdef (diff)
downloadnginx-64bfa87e7305cbc61662a3aa964d29b4f89cef69.tar.gz
nginx-64bfa87e7305cbc61662a3aa964d29b4f89cef69.zip
fix segfault in resolver:
ngx_resolve_name_done() and ngx_resolve_addr_done() did not delete contexts from a resolver node waiting list.
Diffstat (limited to 'src')
-rw-r--r--src/core/ngx_resolver.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index 9adc2d223..82785c276 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -464,6 +464,7 @@ ngx_resolve_name_locked(ngx_resolver_t *r, ngx_resolver_ctx_t *ctx)
ctx->next = rn->waiting;
rn->waiting = ctx;
+ ctx->state = NGX_AGAIN;
return NGX_AGAIN;
}
@@ -625,6 +626,7 @@ ngx_resolve_addr(ngx_resolver_ctx_t *ctx)
ctx->next = rn->waiting;
rn->waiting = ctx;
+ ctx->state = NGX_AGAIN;
/* unlock addr mutex */