From: Kees Monshouwer Date: Tue, 12 Jul 2022 13:53:26 +0000 (+0200) Subject: auth: stop wasting memory X-Git-Tag: auth-4.8.0-alpha0~7^2~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ff897d183c1d718fc5fdb1dc02f9e136a07d62d;p=thirdparty%2Fpdns.git auth: stop wasting memory --- diff --git a/pdns/backends/gsql/gsqlbackend.cc b/pdns/backends/gsql/gsqlbackend.cc index 6f9843b632..6561bdb2ad 100644 --- a/pdns/backends/gsql/gsqlbackend.cc +++ b/pdns/backends/gsql/gsqlbackend.cc @@ -421,6 +421,9 @@ void GSQLBackend::getUnfreshSlaveInfos(vector *unfreshDomains) SOAData sd; DomainInfo di; + vector masters; + + unfreshDomains->reserve(d_result.size()); for (const auto& row : d_result) { // id, name, type, master, last_check, catalog, content ASSERT_ROW_COLUMNS("info-all-slaves-query", row, 6); @@ -471,7 +474,8 @@ void GSQLBackend::getUnfreshSlaveInfos(vector *unfreshDomains) continue; } - vector masters; + di.masters.clear(); + masters.clear(); stringtok(masters, row[3], ", \t"); for(const auto& m : masters) { try { @@ -525,6 +529,7 @@ void GSQLBackend::getUpdatedMasters(vector& updatedDomains, std::uno DomainInfo di; CatalogInfo ci; + updatedDomains.reserve(d_result.size()); for (const auto& row : d_result) { // id, name, type, notified_serial, options, catalog, content ASSERT_ROW_COLUMNS("info-all-master-query", row, 7); @@ -643,6 +648,7 @@ bool GSQLBackend::getCatalogMembers(const DNSName& catalog, vector& throw PDNSException(std::string(__PRETTY_FUNCTION__) + " unable to retrieve list of member zones: " + e.txtReason()); } + members.reserve(d_result.size()); for (const auto& row : d_result) { // id, zone, options, [master] if (type == CatalogInfo::CatalogType::Producer) { ASSERT_ROW_COLUMNS("info-producer/consumer-members-query", row, 3);