diff options
author | Igor Sysoev <igor@sysoev.ru> | 2009-11-09 17:45:56 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2009-11-09 17:45:56 +0000 |
commit | 64bfa87e7305cbc61662a3aa964d29b4f89cef69 (patch) | |
tree | 2eeb9b44a00e2ec087defb0504c8046efd0e87fc /src | |
parent | 21accae8e58f7db77a74765b340089da2fc5fdef (diff) | |
download | nginx-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.c | 2 |
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 */ |