From 8629b9b27ee44a3c9b327a32ad3c15735da83866 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Thu, 29 Jan 2009 14:29:49 +0000 Subject: fix reverse resolving cache: it stored zero length names *) free name only if it has been already allocated *) store name length --- src/core/ngx_resolver.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c index 05b44c771..ce9420134 100644 --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -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); -- cgit