From: Remi Gacogne Date: Wed, 12 Jul 2023 11:07:29 +0000 (+0200) Subject: calidns: Use the full 32-bit range for 0.0.0.0/0, via Otto X-Git-Tag: rec-5.0.0-alpha1~79^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8ae32efc69244141d1f34cc8c658bba13d39353d;p=thirdparty%2Fpdns.git calidns: Use the full 32-bit range for 0.0.0.0/0, via Otto --- diff --git a/pdns/calidns.cc b/pdns/calidns.cc index 9afdbe93af..9a428ac4c3 100644 --- a/pdns/calidns.cc +++ b/pdns/calidns.cc @@ -121,8 +121,14 @@ static ComboAddress getRandomAddressFromRange(const Netmask& ecsRange) { ComboAddress result = ecsRange.getMaskedNetwork(); uint8_t bits = ecsRange.getBits(); - uint32_t mod = (bits > 0) ? (1 << (32 - bits)) : std::numeric_limits::max(); - result.sin4.sin_addr.s_addr = result.sin4.sin_addr.s_addr + ntohl(dns_random(mod)); + if (bits > 0) { + uint32_t mod = 1 << (32 - bits); + result.sin4.sin_addr.s_addr = result.sin4.sin_addr.s_addr + ntohl(dns_random(mod)); + } + else { + result.sin4.sin_addr.s_addr = dns_random_uint32(); + } + return result; }