diff options
author | Igor Sysoev <igor@sysoev.ru> | 2009-11-11 14:27:24 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2009-11-11 14:27:24 +0000 |
commit | e79f429b4b65e98d8417a579916381341d1053ec (patch) | |
tree | b9c8509c6fe20a142a3fe5111949f40802a6dcf5 /src/core/ngx_resolver.c | |
parent | 61da56d0410513db7ea93c96756fc02bdc46efbf (diff) | |
download | nginx-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.c | 10 |
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; |