]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Perform case-insensitive checks for _dsboot and _signal. 15863/head
authorMiod Vallat <miod.vallat@powerdns.com>
Thu, 17 Jul 2025 11:50:52 +0000 (13:50 +0200)
committerMiod Vallat <miod.vallat@powerdns.com>
Thu, 17 Jul 2025 12:24:59 +0000 (14:24 +0200)
Reminded by Kees Monshouwer.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
pdns/packethandler.cc
pdns/pdnsutil.cc

index cc1612b61f21c788e9f0461b279e42f20e32b059..d4523b550b82928dc251b7e9fca171d4007d06d0 100644 (file)
@@ -1343,7 +1343,7 @@ void PacketHandler::completeANYRecords(DNSPacket& p, std::unique_ptr<DNSPacket>&
 bool PacketHandler::tryAuthSignal(DNSPacket& p, std::unique_ptr<DNSPacket>& r, DNSName &target) // NOLINT(readability-identifier-length)
 {
   DLOG(g_log<<Logger::Warning<<"Let's try authenticated DNSSEC bootstrapping (RFC 9615) ..."<<endl);
-  if(d_sd.zonename.operator const DNSName&().countLabels() == 0 || d_sd.zonename.operator const DNSName&().getRawLabel(0) != "_signal" || !d_dk.isSignalingZone(d_sd.zonename)) {
+  if(d_sd.zonename.operator const DNSName&().countLabels() == 0 || !pdns_iequals(d_sd.zonename.operator const DNSName&().getRawLabel(0), "_signal") || !d_dk.isSignalingZone(d_sd.zonename)) {
     return false;
   }
 
@@ -1359,7 +1359,7 @@ bool PacketHandler::tryAuthSignal(DNSPacket& p, std::unique_ptr<DNSPacket>& r, D
   }
 
   // Check for prefix mismatch
-  if(target.countLabels() == 0 || target.getRawLabel(0) != "_dsboot") {
+  if(target.countLabels() == 0 || !pdns_iequals(target.getRawLabel(0), "_dsboot")) {
     makeNOError(p, r, target, DNSName(), 0); // could be ENT
     return true;
   }
index 80d16a7a821da42c39227873e8fb63cb6a6f97c2..8abdea6aff4fcf910ac122284ebbf22a78853003 100644 (file)
@@ -3681,7 +3681,7 @@ static int setSignalingZone(vector<string>& cmds, const std::string_view synopsi
 
   ZoneName zone(cmds.at(1));
 
-  if(zone.operator const DNSName&().countLabels() == 0 || zone.operator const DNSName&().getRawLabel(0) != "_signal") {
+  if(zone.operator const DNSName&().countLabels() == 0 || !pdns_iequals(zone.operator const DNSName&().getRawLabel(0), "_signal")) {
     cerr << "Signaling zone's first label must be '_signal': " << zone << endl;
     return 1;
   }