fix reverse resolving cache: it stored zero length names
*) free name only if it has been already allocated
*) store name length
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index 05b44c7..ce94201 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -1523,7 +1523,11 @@
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);