]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix a crash when a selector cannot be found by its name
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 10 Nov 2025 12:36:01 +0000 (13:36 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 10 Nov 2025 12:36:01 +0000 (13:36 +0100)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dnsdistdist/dnsdist-configuration-yaml.cc

index d97f8898b228f7472e57c19976edaf60026fd2e1..87cbea697ac8ba28f72caee659cf4e5dd47ce333 100644 (file)
@@ -1910,7 +1910,11 @@ std::shared_ptr<DNSSelector> getNotSelector(const NotSelectorConfiguration& conf
 
 std::shared_ptr<DNSSelector> getByNameSelector(const ByNameSelectorConfiguration& config)
 {
-  return dnsdist::configuration::yaml::getRegisteredTypeByName<DNSSelector>(config.selector_name);
+  auto ptr = dnsdist::configuration::yaml::getRegisteredTypeByName<DNSSelector>(config.selector_name);
+  if (!ptr) {
+    throw std::runtime_error("Unable find a selector named " + std::string(config.selector_name));
+  }
+  return ptr;
 }
 
 #include "dnsdist-rust-bridge-actions-generated-body.hh"