From 4c860590a27b60f05e2f78b575e88086aee4eb2f Mon Sep 17 00:00:00 2001 From: Tommaso Pecorella Date: Sun, 18 Jun 2017 01:07:41 +0200 Subject: [PATCH] internet: (fixes #2756) Ipv4AddressGenerator underestimates the number of available addresses in a network --- src/internet/model/ipv4-address-generator.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/internet/model/ipv4-address-generator.cc b/src/internet/model/ipv4-address-generator.cc index 67d81a2c1..ab01abec1 100644 --- a/src/internet/model/ipv4-address-generator.cc +++ b/src/internet/model/ipv4-address-generator.cc @@ -209,7 +209,7 @@ Ipv4AddressGeneratorImpl::Reset (void) mask |= MOST_SIGNIFICANT_BIT; m_netTable[i].network = 1; m_netTable[i].addr = 1; - m_netTable[i].addrMax = ~mask; + m_netTable[i].addrMax = ~m_netTable[i].mask; m_netTable[i].shift = N_BITS - i; } m_entries.clear (); @@ -250,6 +250,7 @@ Ipv4AddressGeneratorImpl::Init ( uint32_t index = MaskToIndex (mask); m_netTable[index].network = netBits >> m_netTable[index].shift; + NS_ABORT_MSG_UNLESS (addrBits <= m_netTable[index].addrMax, "Ipv4AddressGeneratorImpl::Init(): Address overflow"); m_netTable[index].addr = addrBits; return;