aboutsummaryrefslogtreecommitdiffstats
path: root/lease.c
diff options
context:
space:
mode:
authorThomas Gschwantner <tharre3@gmail.com>2019-09-28 18:59:31 +0200
committerThomas Gschwantner <tharre3@gmail.com>2019-12-11 06:22:17 +0100
commit4a12b8eff80d369ab3b220aa9d533faf88dd4df9 (patch)
tree46767f57b47084507b9c41c8cf990f72922689b3 /lease.c
parentFixup client, including a lot of refactoring (diff)
downloadwg-dynamic-4a12b8eff80d369ab3b220aa9d533faf88dd4df9.tar.xz
wg-dynamic-4a12b8eff80d369ab3b220aa9d533faf88dd4df9.zip
Fix random_bounded() to always be in [0, bound)
Previously random_bounded(1) would return values in [0, 1], while values > 1 would return [0, bound).
Diffstat (limited to 'lease.c')
-rw-r--r--lease.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lease.c b/lease.c
index 7404c6e..2191035 100644
--- a/lease.c
+++ b/lease.c
@@ -237,7 +237,7 @@ struct wg_dynamic_lease *set_lease(wg_key pubkey, uint32_t leasetime,
debug("IPv4 pool empty\n");
memset(&lease->ipv4, 0, sizeof(lease->ipv4));
} else {
- uint32_t index = random_bounded(pool.total_ipv4 - 1);
+ uint32_t index = random_bounded(pool.total_ipv4);
debug("new_lease(v4): %u of %u\n", index,
pool.total_ipv4);
ipp_addnth_v4(&pool, &lease->ipv4, index);
@@ -262,10 +262,10 @@ struct wg_dynamic_lease *set_lease(wg_key pubkey, uint32_t leasetime,
uint64_t index_l;
uint32_t index_h;
if (pool.totalh_ipv6 > 0) {
- index_l = random_bounded(UINT64_MAX);
- index_h = random_bounded(pool.totalh_ipv6 - 1);
+ index_l = random_u64();
+ index_h = random_bounded(pool.totalh_ipv6);
} else {
- index_l = random_bounded(pool.totall_ipv6 - 1);
+ index_l = random_bounded(pool.totall_ipv6);
index_h = 0;
}