]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix some warnings reported by Coverity 17120/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 8 Apr 2026 10:33:38 +0000 (12:33 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 8 Apr 2026 10:33:38 +0000 (12:33 +0200)
Being more consistent when moving `RemoteLogActionConfiguration` objects.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dnsdistdist/dnsdist-actions-factory.cc
pdns/dnsdistdist/dnsdist-actions-factory.hh
pdns/dnsdistdist/dnsdist-configuration-yaml.cc
pdns/dnsdistdist/dnsdist-lua-actions.cc

index 1eb69b11f1717ccb8c584c9e33a1dc2b34909183..1bda58ce90596ab227cbdfaba1c786d8882e1186 100644 (file)
@@ -1670,7 +1670,7 @@ class RemoteLogAction : public DNSAction, public boost::noncopyable
 {
 public:
   // this action does not stop the processing
-  RemoteLogAction(RemoteLogActionConfiguration& config) :
+  RemoteLogAction(RemoteLogActionConfiguration&& config) :
     d_config(std::move(config))
   {
     if (!d_config.ipEncryptKey.empty() && d_config.ipEncryptMethod == "ipcrypt-pfx") {
@@ -1966,7 +1966,7 @@ class RemoteLogResponseAction : public DNSResponseAction, public boost::noncopya
 {
 public:
   // this action does not stop the processing
-  RemoteLogResponseAction(RemoteLogActionConfiguration& config) :
+  RemoteLogResponseAction(RemoteLogActionConfiguration&& config) :
     d_config(std::move(config))
   {
     if (!d_config.ipEncryptKey.empty() && d_config.ipEncryptMethod == "ipcrypt-pfx") {
@@ -2687,14 +2687,14 @@ std::shared_ptr<DNSAction> getSetTraceAction(SetTraceActionConfiguration& config
   return std::shared_ptr<DNSAction>(new SetTraceAction(config));
 }
 
-std::shared_ptr<DNSAction> getRemoteLogAction(RemoteLogActionConfiguration& config)
+std::shared_ptr<DNSAction> getRemoteLogAction(RemoteLogActionConfiguration&& config)
 {
-  return std::shared_ptr<DNSAction>(new RemoteLogAction(config));
+  return std::shared_ptr<DNSAction>(new RemoteLogAction(std::move(config)));
 }
 
-std::shared_ptr<DNSResponseAction> getRemoteLogResponseAction(RemoteLogActionConfiguration& config)
+std::shared_ptr<DNSResponseAction> getRemoteLogResponseAction(RemoteLogActionConfiguration&& config)
 {
-  return std::shared_ptr<DNSResponseAction>(new RemoteLogResponseAction(config));
+  return std::shared_ptr<DNSResponseAction>(new RemoteLogResponseAction(std::move(config)));
 }
 
 std::shared_ptr<DNSAction> getDnstapLogAction(const std::string& identity, std::shared_ptr<RemoteLoggerInterface> logger, std::optional<DnstapAlterFunction> alterFunc)
index 5eeb7c582ba221f542e5c9110dbaac0fceea31b9..7b276736f018069b034ac878ccf58073ebae4904 100644 (file)
@@ -122,8 +122,8 @@ struct RemoteLogActionConfiguration
   bool tagsExportKeyOnly{false};
   bool tagsStripPrefixes{false};
 };
-std::shared_ptr<DNSAction> getRemoteLogAction(RemoteLogActionConfiguration& config);
-std::shared_ptr<DNSResponseAction> getRemoteLogResponseAction(RemoteLogActionConfiguration& config);
+std::shared_ptr<DNSAction> getRemoteLogAction(RemoteLogActionConfiguration&& config);
+std::shared_ptr<DNSResponseAction> getRemoteLogResponseAction(RemoteLogActionConfiguration&& config);
 std::shared_ptr<DNSAction> getDnstapLogAction(const std::string& identity, std::shared_ptr<RemoteLoggerInterface> logger, std::optional<DnstapAlterFunction> alterFunc);
 std::shared_ptr<DNSResponseAction> getDnstapLogResponseAction(const std::string& identity, std::shared_ptr<RemoteLoggerInterface> logger, std::optional<DnstapAlterResponseFunction> alterFunc);
 
index 5ceb4c90cac72a87342bfd7cb24b3dd6928db397..412a07b5bb791cb373e75b0e72289e6bf8ee66f2 100644 (file)
@@ -1842,7 +1842,7 @@ std::shared_ptr<DNSActionWrapper> getRemoteLogAction(const RemoteLogActionConfig
   actionConfig.useServerID = config.use_server_id;
   actionConfig.tagsExportKeyOnly = config.export_tags_key_only;
   actionConfig.tagsStripPrefixes = config.export_tags_strip_prefixes;
-  auto action = dnsdist::actions::getRemoteLogAction(actionConfig);
+  auto action = dnsdist::actions::getRemoteLogAction(std::move(actionConfig));
   return newDNSActionWrapper(std::move(action), config.name);
 #endif
 }
@@ -1887,7 +1887,7 @@ std::shared_ptr<DNSResponseActionWrapper> getRemoteLogResponseAction(const Remot
   actionConfig.useServerID = config.use_server_id;
   actionConfig.tagsExportKeyOnly = config.export_tags_key_only;
   actionConfig.tagsStripPrefixes = config.export_tags_strip_prefixes;
-  auto action = dnsdist::actions::getRemoteLogResponseAction(actionConfig);
+  auto action = dnsdist::actions::getRemoteLogResponseAction(std::move(actionConfig));
   return newDNSResponseActionWrapper(std::move(action), config.name);
 #endif
 }
index add5bcbe030258119c6a41a6ec357d889257a608..5f9f7e9b11e53336dbce55fe19c64c8d64935c21 100644 (file)
@@ -362,7 +362,7 @@ void setupLuaActions(LuaContext& luaCtx)
 
     checkAllParametersConsumed("RemoteLogAction", vars);
 
-    return dnsdist::actions::getRemoteLogAction(config);
+    return dnsdist::actions::getRemoteLogAction(std::move(config));
   });
 
   luaCtx.writeFunction("RemoteLogResponseAction", [](std::shared_ptr<RemoteLoggerInterface> logger, std::optional<dnsdist::actions::ProtobufAlterResponseFunction> alterFunc, std::optional<bool> includeCNAME, std::optional<LuaAssociativeTable<boost::variant<std::string, bool>>> vars, std::optional<LuaAssociativeTable<std::string>> metas, std::optional<bool> delay) {
@@ -451,7 +451,7 @@ void setupLuaActions(LuaContext& luaCtx)
 
     checkAllParametersConsumed("RemoteLogResponseAction", vars);
 
-    return dnsdist::actions::getRemoteLogResponseAction(config);
+    return dnsdist::actions::getRemoteLogResponseAction(std::move(config));
   });
 
   luaCtx.writeFunction("DnstapLogAction", [](const std::string& identity, std::shared_ptr<RemoteLoggerInterface> logger, std::optional<dnsdist::actions::DnstapAlterFunction> alterFunc) {