]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix out-of-bounds read in SetMacAddrAction 17603/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 13 Apr 2026 10:28:11 +0000 (12:28 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 13 Apr 2026 10:28:11 +0000 (12:28 +0200)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dnsdistdist/dnsdist-actions-factory.cc

index ded8a537dc839890826bb94113ed8998a668a494..81795dff0fa390248b9de8bbc513e352a17af14f 100644 (file)
@@ -986,9 +986,10 @@ public:
       return Action::None;
     }
 
-    std::string optRData;
     // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
-    generateEDNSOption(d_code, reinterpret_cast<const char*>(mac.data()), optRData);
+    std::string macStr(reinterpret_cast<const char*>(mac.data()), mac.size());
+    std::string optRData;
+    generateEDNSOption(d_code, macStr, optRData);
 
     if (dnsquestion->getHeader()->arcount > 0) {
       bool ednsAdded = false;