aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_resolver.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-11-11 14:27:24 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-11-11 14:27:24 +0000
commite79f429b4b65e98d8417a579916381341d1053ec (patch)
treeb9c8509c6fe20a142a3fe5111949f40802a6dcf5 /src/core/ngx_resolver.c
parent61da56d0410513db7ea93c96756fc02bdc46efbf (diff)
downloadnginx-e79f429b4b65e98d8417a579916381341d1053ec.tar.gz
nginx-e79f429b4b65e98d8417a579916381341d1053ec.zip
fix resolving an empty name (".")
Diffstat (limited to 'src/core/ngx_resolver.c')
-rw-r--r--src/core/ngx_resolver.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index 48d569ea3..9e6fb5162 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -1719,13 +1719,14 @@ static ngx_int_t
ngx_resolver_create_name_query(ngx_resolver_node_t *rn, ngx_resolver_ctx_t *ctx)
{
u_char *p, *s;
- size_t len;
+ size_t len, nlen;
ngx_uint_t ident;
ngx_resolver_qs_t *qs;
ngx_resolver_query_t *query;
- len = sizeof(ngx_resolver_query_t)
- + 1 + ctx->name.len + 1 + sizeof(ngx_resolver_qs_t);
+ nlen = ctx->name.len ? (1 + ctx->name.len + 1) : 1;
+
+ len = sizeof(ngx_resolver_query_t) + nlen + sizeof(ngx_resolver_qs_t);
p = ngx_resolver_calloc(ctx->resolver, len);
if (p == NULL) {
@@ -1754,8 +1755,7 @@ ngx_resolver_create_name_query(ngx_resolver_node_t *rn, ngx_resolver_ctx_t *ctx)
query->nns_hi = 0; query->nns_lo = 0;
query->nar_hi = 0; query->nar_lo = 0;
- p += sizeof(ngx_resolver_query_t)
- + ctx->name.len ? (1 + ctx->name.len + 1) : 1;
+ p += sizeof(ngx_resolver_query_t) + nlen;
qs = (ngx_resolver_qs_t *) p;