From 10700675b87417bec4a3fcc664dbe516e7822826 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Fri, 3 Mar 2017 15:09:10 +0100 Subject: [PATCH] auth: Don't leak a CDB object in case of bogus data --- modules/tinydnsbackend/tinydnsbackend.cc | 8 ++++---- modules/tinydnsbackend/tinydnsbackend.hh | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/tinydnsbackend/tinydnsbackend.cc b/modules/tinydnsbackend/tinydnsbackend.cc index a20ffc441d..8b3bed9f89 100644 --- a/modules/tinydnsbackend/tinydnsbackend.cc +++ b/modules/tinydnsbackend/tinydnsbackend.cc @@ -153,7 +153,7 @@ void TinyDNSBackend::getAllDomains(vector *domains, bool include_dis d_isAxfr=true; d_dnspacket = NULL; - d_cdbReader=new CDB(getArg("dbfile")); + d_cdbReader=std::unique_ptr(new CDB(getArg("dbfile"))); d_cdbReader->searchAll(); DNSResourceRecord rr; @@ -178,7 +178,7 @@ void TinyDNSBackend::getAllDomains(vector *domains, bool include_dis bool TinyDNSBackend::list(const DNSName &target, int domain_id, bool include_disabled) { d_isAxfr=true; string key = target.toDNSString(); // FIXME400 bug: no lowercase here? or promise that from core? - d_cdbReader=new CDB(getArg("dbfile")); + d_cdbReader=std::unique_ptr(new CDB(getArg("dbfile"))); return d_cdbReader->searchSuffix(key); } @@ -199,7 +199,7 @@ void TinyDNSBackend::lookup(const QType &qtype, const DNSName &qdomain, DNSPacke d_qtype=qtype; - d_cdbReader=new CDB(getArg("dbfile")); + d_cdbReader=std::unique_ptr(new CDB(getArg("dbfile"))); d_cdbReader->searchKey(key); d_dnspacket = pkt_p; } @@ -318,7 +318,7 @@ bool TinyDNSBackend::get(DNSResourceRecord &rr) } // end of while DLOG(L< d_cdbReader; DNSPacket *d_dnspacket; // used for location and edns-client support. bool d_isWildcardQuery; // Indicate if the query received was a wildcard query. bool d_isAxfr; // Indicate if we received a list() and not a lookup(). -- 2.47.2