diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-11-06 03:38:54 +0900 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-11-06 03:38:54 +0900 |
commit | fc6676c4a0711248388a0df0f3e9e38492894a2c (patch) | |
tree | 2ec0b0902850ea0c5cf4ca400a92e0fcd856e1b6 /lib/ippool.c | |
parent | 1af543f44c79696abdd422a3e28458f8deb11375 (diff) |
ippool: Correctly compute size of static pool
* we have to use stataddr, not addr (dynamic)
* we have to multiply the length of the address by 8 to get its bit length
* we can simplify the -1 +1 logic (like dynamic)
Change-Id: I174102051bef95f7df34b7d7c480a00ae408be7d
Fixes: Coverity CID#174189
Diffstat (limited to 'lib/ippool.c')
-rw-r--r-- | lib/ippool.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/ippool.c b/lib/ippool.c index 55a41d0..a9a64be 100644 --- a/lib/ippool.c +++ b/lib/ippool.c @@ -240,7 +240,7 @@ int ippool_new(struct ippool_t **this, const struct in46_prefix *dyn, const stru stataddr = stat->addr; stataddrprefixlen = stat->prefixlen; - statsize = (1 << (addr.len - stataddrprefixlen + 1)) -1; + statsize = (1 << (stataddr.len*8 - stataddrprefixlen)); if (statsize > IPPOOL_STATSIZE) statsize = IPPOOL_STATSIZE; } |