From 1f7bfbb83c6b320d52f4ff91b6fdc426cb03b59a Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 20 Feb 2012 11:56:21 -0600 Subject: [PATCH] Fix memory leak in DNS manager (fixes #777). --- src/DNS_Mgr.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/DNS_Mgr.cc b/src/DNS_Mgr.cc index 534af15d39..550dfeef6e 100644 --- a/src/DNS_Mgr.cc +++ b/src/DNS_Mgr.cc @@ -704,6 +704,7 @@ void DNS_Mgr::AddResult(DNS_Mgr_Request* dr, struct nb_dns_result* r) if ( dr->ReqHost() ) { new_dm = new DNS_Mapping(dr->ReqHost(), h, ttl); + prev_dm = 0; HostMap::iterator it = host_mappings.find(dr->ReqHost()); if ( it == host_mappings.end() ) @@ -711,15 +712,11 @@ void DNS_Mgr::AddResult(DNS_Mgr_Request* dr, struct nb_dns_result* r) host_mappings[dr->ReqHost()].first = new_dm->Type() == AF_INET ? new_dm : 0; host_mappings[dr->ReqHost()].second = - new_dm->Type() == AF_INET6 ? new_dm : 0; - - prev_dm = 0; + new_dm->Type() == AF_INET ? 0 : new_dm; } else { - prev_dm = 0; - if ( new_dm->Type() == AF_INET ) { prev_dm = it->second.first;