From 88450646406458fd79d6f8aa2f70133f27cd0319 Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Fri, 17 Jan 2025 14:29:13 +0100 Subject: [PATCH] rec: New Coverity Variable copied when it could be moved cases Coverity: 1587816 1587811,12,13,14,17,19 1587810 1587809 1587808 1587807 1587806 1587805 1587804 1587801 1587798 1587796 1587795 1587792 1587791 1587790 1587789 1587788 1587786 1544953 --- pdns/arguments.cc | 2 +- pdns/dnsparser.cc | 4 ++-- pdns/dnsrecords.cc | 2 +- pdns/rcpgenerator.cc | 4 ++-- pdns/recursordist/lua-recursor4.cc | 2 +- pdns/recursordist/pdns_recursor.cc | 2 +- pdns/recursordist/pubsuffixloader.cc | 2 +- pdns/recursordist/rec-lua-conf.cc | 2 +- pdns/recursordist/rec-zonetocache.cc | 4 ++-- pdns/recursordist/rec_channel_rec.cc | 6 +++--- pdns/recursordist/reczones.cc | 4 ++-- pdns/recursordist/settings/generate.py | 2 +- pdns/recursordist/syncres.cc | 18 +++++++++--------- pdns/recursordist/validate-recursor.cc | 2 +- 14 files changed, 28 insertions(+), 28 deletions(-) diff --git a/pdns/arguments.cc b/pdns/arguments.cc index 7eef549ded..2e0ae78692 100644 --- a/pdns/arguments.cc +++ b/pdns/arguments.cc @@ -433,7 +433,7 @@ void ArgvMap::parseOne(const string& arg, const string& parseOnly, bool lax) } else { d_params[var] = val; - d_cleared.insert(var); + d_cleared.insert(std::move(var)); } } else { diff --git a/pdns/dnsparser.cc b/pdns/dnsparser.cc index 12974ae57c..0c1fce359b 100644 --- a/pdns/dnsparser.cc +++ b/pdns/dnsparser.cc @@ -631,7 +631,7 @@ void PacketReader::xfrSvcParamKeyVals(set &kvs) { throw std::out_of_range("alpn length of 0"); } xfrBlob(alpn, alpnLen); - alpns.push_back(alpn); + alpns.push_back(std::move(alpn)); } kvs.insert(SvcParam(key, std::move(alpns))); break; @@ -672,7 +672,7 @@ void PacketReader::xfrSvcParamKeyVals(set &kvs) { bool doAuto{d_internal && len == 0}; auto param = SvcParam(key, std::move(addresses)); param.setAutoHint(doAuto); - kvs.insert(param); + kvs.insert(std::move(param)); break; } case SvcParam::ech: { diff --git a/pdns/dnsrecords.cc b/pdns/dnsrecords.cc index 9cabe90ff2..e096be81ef 100644 --- a/pdns/dnsrecords.cc +++ b/pdns/dnsrecords.cc @@ -780,7 +780,7 @@ void SVCBBaseRecordContent::setHints(const SvcParam::SvcParamKey &key, const std try { auto newParam = SvcParam(key, std::move(h)); d_params.erase(p); - d_params.insert(newParam); + d_params.insert(std::move(newParam)); } catch (...) { // XXX maybe we should SERVFAIL instead? return; diff --git a/pdns/rcpgenerator.cc b/pdns/rcpgenerator.cc index 3258fb4afb..fb5869dd12 100644 --- a/pdns/rcpgenerator.cc +++ b/pdns/rcpgenerator.cc @@ -408,7 +408,7 @@ void RecordTextReader::xfrSvcParamKeyVals(set& val) // NOLINT(readabil try { auto p = SvcParam(key, std::move(hints)); p.setAutoHint(doAuto); - val.insert(p); + val.insert(std::move(p)); } catch (const std::invalid_argument& e) { throw RecordTextException(e.what()); @@ -880,7 +880,7 @@ void RecordTextWriter::xfrSVCBValueList(const vector &val) { } unescaped += ch; } - escaped.push_back(unescaped); + escaped.push_back(std::move(unescaped)); } if (shouldQuote) { d_string.append(1, '"'); diff --git a/pdns/recursordist/lua-recursor4.cc b/pdns/recursordist/lua-recursor4.cc index 435c779729..4f16b63684 100644 --- a/pdns/recursordist/lua-recursor4.cc +++ b/pdns/recursordist/lua-recursor4.cc @@ -139,7 +139,7 @@ void RecursorLua4::DNSQuestion::addRecord(uint16_t type, const std::string& cont dnsRecord.d_type = type; dnsRecord.d_place = place; dnsRecord.setContent(DNSRecordContent::make(type, QClass::IN, content)); - records.push_back(dnsRecord); + records.push_back(std::move(dnsRecord)); } void RecursorLua4::DNSQuestion::addAnswer(uint16_t type, const std::string& content, boost::optional ttl, boost::optional name) diff --git a/pdns/recursordist/pdns_recursor.cc b/pdns/recursordist/pdns_recursor.cc index da7faf5e51..559ff7aa06 100644 --- a/pdns/recursordist/pdns_recursor.cc +++ b/pdns/recursordist/pdns_recursor.cc @@ -814,7 +814,7 @@ int getFakePTRRecords(const DNSName& qname, vector& ret) record.setContent(std::make_shared(newquery)); // Copy the TTL of the synthesized CNAME from the actual answer record.d_ttl = (rcode == RCode::NoError && !answers.empty()) ? answers.at(0).d_ttl : SyncRes::s_minimumTTL; - ret.push_back(record); + ret.push_back(std::move(record)); ret.insert(ret.end(), answers.begin(), answers.end()); diff --git a/pdns/recursordist/pubsuffixloader.cc b/pdns/recursordist/pubsuffixloader.cc index 3d413d66c9..1174a82c56 100644 --- a/pdns/recursordist/pubsuffixloader.cc +++ b/pdns/recursordist/pubsuffixloader.cc @@ -86,7 +86,7 @@ void initPublicSuffixList(const std::string& file) vector parts; stringtok(parts, low, "."); reverse(parts.begin(), parts.end()); - pbList.push_back(parts); + pbList.push_back(std::move(parts)); } } diff --git a/pdns/recursordist/rec-lua-conf.cc b/pdns/recursordist/rec-lua-conf.cc index d25c528f66..d4a84532cf 100644 --- a/pdns/recursordist/rec-lua-conf.cc +++ b/pdns/recursordist/rec-lua-conf.cc @@ -809,7 +809,7 @@ void loadRecursorLuaConfig(const std::string& fname, ProxyMapping& proxyMapping, try { Lua->executeCode(ifs); - newLuaConfig = lci; + newLuaConfig = std::move(lci); } catch (const LuaContext::ExecutionErrorException& e) { SLOG(g_log << Logger::Error << "Unable to load Lua script from '" + fname + "': ", diff --git a/pdns/recursordist/rec-zonetocache.cc b/pdns/recursordist/rec-zonetocache.cc index 2c667c2ed0..4833f8ac7c 100644 --- a/pdns/recursordist/rec-zonetocache.cc +++ b/pdns/recursordist/rec-zonetocache.cc @@ -99,7 +99,7 @@ void ZoneData::parseDRForCache(DNSRecord& dnsRecord) case QType::NSEC3: break; case QType::RRSIG: { - const auto rrsig = getRR(dnsRecord); + auto rrsig = getRR(dnsRecord); if (rrsig == nullptr) { break; } @@ -110,7 +110,7 @@ void ZoneData::parseDRForCache(DNSRecord& dnsRecord) } else { vector> sigsrr; - sigsrr.push_back(rrsig); + sigsrr.push_back(std::move(rrsig)); d_sigs.insert({sigkey, sigsrr}); } break; diff --git a/pdns/recursordist/rec_channel_rec.cc b/pdns/recursordist/rec_channel_rec.cc index d79e4c2d04..76fa3a6015 100644 --- a/pdns/recursordist/rec_channel_rec.cc +++ b/pdns/recursordist/rec_channel_rec.cc @@ -1561,7 +1561,7 @@ DNSName getRegisteredName(const DNSName& dom) while (!parts.empty()) { if (parts.size() == 1 || binary_search(g_pubs.begin(), g_pubs.end(), parts)) { - string ret = last; + string ret = std::move(last); if (!ret.empty()) ret += "."; @@ -1643,7 +1643,7 @@ static string addDontThrottleNames(T begin, T end) while (begin != end) { try { auto d = DNSName(*begin); - toAdd.push_back(d); + toAdd.push_back(std::move(d)); } catch (const std::exception& e) { return "Problem parsing '" + *begin + "': " + e.what() + ", nothing added\n"; @@ -1936,7 +1936,7 @@ RecursorControlChannel::Answer luaconfig(bool broadcast) lci = g_luaconfs.getCopy(); if (broadcast) { startLuaConfigDelayedThreads(lci, lci.generation); - broadcastFunction([=] { return pleaseSupplantProxyMapping(proxyMapping); }); + broadcastFunction([pmap = std::move(proxyMapping)] { return pleaseSupplantProxyMapping(pmap); }); } else { // Initial proxy mapping diff --git a/pdns/recursordist/reczones.cc b/pdns/recursordist/reczones.cc index f015b9dde2..ff3fbeeabd 100644 --- a/pdns/recursordist/reczones.cc +++ b/pdns/recursordist/reczones.cc @@ -208,8 +208,8 @@ string reloadZoneConfiguration(bool yaml) // these explicitly-named captures should not be necessary, as lambda // capture of tuple-like structured bindings is permitted, but some // compilers still don't allow it - broadcastFunction([dmap = newDomainMap] { return pleaseUseNewSDomainsMap(dmap); }); - broadcastFunction([nsset = newNotifySet] { return pleaseSupplantAllowNotifyFor(nsset); }); + broadcastFunction([dmap = std::move(newDomainMap)] { return pleaseUseNewSDomainsMap(dmap); }); + broadcastFunction([nsset = std::move(newNotifySet)] { return pleaseSupplantAllowNotifyFor(nsset); }); // Wipe the caches *after* the new auth domain info has been set // up, as a query during setting up might fill the caches diff --git a/pdns/recursordist/settings/generate.py b/pdns/recursordist/settings/generate.py index 8556785183..d1e53e26d0 100644 --- a/pdns/recursordist/settings/generate.py +++ b/pdns/recursordist/settings/generate.py @@ -316,7 +316,7 @@ def gen_cxx_oldkvtobridgestruct(file, entries): file.write('const std::string& value, ::rust::String& section, ::rust::String& fieldname, ') file.write('::rust::String& type_name, pdns::rust::settings::rec::Value& rustvalue)') file.write('{ // NOLINT(readability-function-cognitive-complexity)\n') - file.write(' if (const auto newname = arg().isDeprecated(key); !newname.empty()) {\n') + file.write(' if (const auto& newname = arg().isDeprecated(key); !newname.empty()) {\n') file.write(' key = newname;\n') file.write(' }\n') for entry in entries: diff --git a/pdns/recursordist/syncres.cc b/pdns/recursordist/syncres.cc index 5bfc4d6740..f19e458539 100644 --- a/pdns/recursordist/syncres.cc +++ b/pdns/recursordist/syncres.cc @@ -942,7 +942,7 @@ void SyncRes::AuthDomain::addSOA(std::vector& records) const if (ziter != d_records.end()) { DNSRecord dnsRecord = *ziter; dnsRecord.d_place = DNSResourceRecord::AUTHORITY; - records.push_back(dnsRecord); + records.push_back(std::move(dnsRecord)); } } @@ -1028,7 +1028,7 @@ int SyncRes::AuthDomain::getRecords(const DNSName& qname, const QType qtype, std if (dnsRecord.d_type == qtype || qtype == QType::ANY || dnsRecord.d_type == QType::CNAME) { dnsRecord.d_name = qname; dnsRecord.d_place = DNSResourceRecord::ANSWER; - records.push_back(dnsRecord); + records.push_back(std::move(dnsRecord)); } } @@ -2592,7 +2592,7 @@ bool SyncRes::doCNAMECacheCheck(const DNSName& qname, const QType qtype, vector< break; } if (g_recCache->get(d_now.tv_sec, dnameName, QType::DNAME, flags, &cset, d_cacheRemote, d_routingTag, d_doDNSSEC ? &signatures : nullptr, d_doDNSSEC ? &authorityRecs : nullptr, &d_wasVariable, &context.state, &wasAuth, &authZone, &d_fromAuthIP) > 0) { - foundName = dnameName; + foundName = std::move(dnameName); foundQT = QType::DNAME; break; } @@ -2664,13 +2664,13 @@ bool SyncRes::doCNAMECacheCheck(const DNSName& qname, const QType qtype, vector< sigdr.setContent(signature); sigdr.d_place = DNSResourceRecord::ANSWER; sigdr.d_class = QClass::IN; - ret.push_back(sigdr); + ret.push_back(std::move(sigdr)); } for (const auto& rec : *authorityRecs) { DNSRecord authDR(rec); authDR.d_ttl = ttl; - ret.push_back(authDR); + ret.push_back(std::move(authDR)); } } @@ -3099,7 +3099,7 @@ bool SyncRes::doCacheCheck(const DNSName& qname, const DNSName& authname, bool w dnsRecord.setContent(signature); dnsRecord.d_place = DNSResourceRecord::ANSWER; dnsRecord.d_class = QClass::IN; - ret.push_back(dnsRecord); + ret.push_back(std::move(dnsRecord)); } for (const auto& rec : *authorityRecs) { @@ -4025,7 +4025,7 @@ vState SyncRes::getDNSKeys(const DNSName& signer, skeyset_t& keys, bool& servFai if (key.d_type == QType::DNSKEY) { auto content = getRR(key); if (content) { - keys.insert(content); + keys.insert(std::move(content)); } } } @@ -4246,7 +4246,7 @@ static void allowAdditionalEntry(std::unordered_set& allowedAdditionals if (target.isRoot()) { target = rec.d_name; } - allowedAdditionals.insert(target); + allowedAdditionals.insert(std::move(target)); } else { // FIXME: Alias mode not implemented yet @@ -4710,7 +4710,7 @@ RCode::rcodes_ SyncRes::updateCacheFromRecords(unsigned int depth, const string& tcache[{rec.d_name, rec.d_type, rec.d_place}].d_ttl_time = d_now.tv_sec; dnsRecord.d_ttl += d_now.tv_sec; dnsRecord.d_place = DNSResourceRecord::ANSWER; - tcache[{rec.d_name, rec.d_type, rec.d_place}].records.push_back(dnsRecord); + tcache[{rec.d_name, rec.d_type, rec.d_place}].records.push_back(std::move(dnsRecord)); } } else diff --git a/pdns/recursordist/validate-recursor.cc b/pdns/recursordist/validate-recursor.cc index 7c169f27bc..ebf869547e 100644 --- a/pdns/recursordist/validate-recursor.cc +++ b/pdns/recursordist/validate-recursor.cc @@ -65,7 +65,7 @@ bool updateTrustAnchorsFromFile(const std::string& fname, map& throw PDNSException("Unable to parse DNSKEY record '" + resourceRecord.qname.toString() + " " + resourceRecord.getZoneRepresentation() + "'"); } auto dsr = makeDSFromDNSKey(resourceRecord.qname, *dnskeyr, DNSSECKeeper::DIGEST_SHA256); - newDSAnchors[resourceRecord.qname].insert(dsr); + newDSAnchors[resourceRecord.qname].insert(std::move(dsr)); } } if (dsAnchors == newDSAnchors) { -- 2.47.2