]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
rec: fix coverity 1635199, 1643012, 1643013 16497/head
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Thu, 13 Nov 2025 14:24:59 +0000 (15:24 +0100)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Thu, 13 Nov 2025 14:24:59 +0000 (15:24 +0100)
First two are simple optimizatios.
1643013 is: Check of thread-shared field evades lock acquisition

Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
pdns/recursordist/rec_channel_rec.cc

index 394717d0f2fbc6ab1bbc77257096a903100184e0..1e5b50a2c48b42de0e25829a712b78e803a6ed64 100644 (file)
@@ -359,7 +359,7 @@ static Answer doGetDefaultParameter(ArgIterator begin, ArgIterator end)
     auto defaults = pdns::rust::settings::rec::parse_yaml_string("");
     if (begin == end) {
       auto yaml = pdns::settings::rec::defaultsToYaml(false);
-      ret << std::string(yaml);
+      ret << std::string(std::move(yaml));
     }
     else {
       for (auto i = begin; i != end; ++i) {
@@ -692,7 +692,7 @@ static Answer doSetCarbonServer(ArgIterator begin, ArgIterator end)
   }
   else {
     g_carbonConfig.setState(std::move(config));
-    return {0, ret};
+    return {0, std::move(ret)};
   }
 
   ++begin;
@@ -717,9 +717,10 @@ static Answer doSetDnssecLogBogus(ArgIterator begin, ArgIterator end)
     return {1, "No DNSSEC Bogus logging setting specified\n"};
   }
   if (pdns_iequals(*begin, "on") || pdns_iequals(*begin, "yes")) {
+    auto lock = g_yamlStruct.lock();
     if (!g_dnssecLogBogus) {
       g_log << Logger::Warning << "Enabling DNSSEC Bogus logging, requested via control channel" << endl;
-      g_yamlStruct.lock()->dnssec.log_bogus = g_dnssecLogBogus = true;
+      lock->dnssec.log_bogus = g_dnssecLogBogus = true;
       return {0, "DNSSEC Bogus logging enabled\n"};
     }
     return {0, "DNSSEC Bogus logging was already enabled\n"};