fix reverse resolving cache: it stored zero length names

*) free name only if it has been already allocated
*) store name length
This commit is contained in:
Igor Sysoev 2009-01-29 14:29:49 +00:00
parent 67392e8054
commit 8629b9b27e

View File

@ -1523,7 +1523,11 @@ ngx_resolver_process_ptr(ngx_resolver_t *r, u_char *buf, size_t n,
if (len != (size_t) rn->nlen || ngx_strncmp(name.data, rn->name, len) != 0)
{
ngx_resolver_free(r, rn->name);
if (rn->nlen) {
ngx_resolver_free(r, rn->name);
}
rn->nlen = len;
rn->name = name.data;
name.data = ngx_resolver_dup(r, rn->name, len);