]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
calidns: Fix setting an ECS source of 0
authorRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 12 Jul 2023 08:49:31 +0000 (10:49 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 1 Aug 2023 08:09:54 +0000 (10:09 +0200)
pdns/calidns.cc

index 87bfbe57edbabaa08d8f63d9b319b85e987fbac1..9afdbe93afb0f67714722754172d32445e4e0c04 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;
 }