From 8ae32efc69244141d1f34cc8c658bba13d39353d Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Wed, 12 Jul 2023 13:07:29 +0200 Subject: [PATCH] calidns: Use the full 32-bit range for 0.0.0.0/0, via Otto --- pdns/calidns.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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; } -- 2.47.3