]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
calidns: Fix setting an ECS source of 0 13188/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 12 Jul 2023 08:49:31 +0000 (10:49 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Wed, 30 Aug 2023 11:56:43 +0000 (13:56 +0200)
(cherry picked from commit ba770e4f65aefdadc489a169ae66fd20c897162c)

pdns/calidns.cc

index 89886e3a704929968e6b5687dc165e4bde2bb4f2..6a3cf25c592d9c57ce7a927385fef14fddfe4047 100644 (file)
@@ -121,7 +121,7 @@ static ComboAddress getRandomAddressFromRange(const Netmask& ecsRange)
 {
   ComboAddress result = ecsRange.getMaskedNetwork();
   uint8_t bits = ecsRange.getBits();
-  uint32_t mod = 1 << (32 - bits);
+  uint32_t mod = (bits > 0) ? (1 << (32 - bits)) : std::numeric_limits<uint32_t>::max();
   result.sin4.sin_addr.s_addr = result.sin4.sin_addr.s_addr + ntohl(dns_random(mod));
   return result;
 }