diff options
author | Thomas Gschwantner <tharre3@gmail.com> | 2019-09-28 18:59:31 +0200 |
---|---|---|
committer | Thomas Gschwantner <tharre3@gmail.com> | 2019-12-11 06:22:17 +0100 |
commit | 4a12b8eff80d369ab3b220aa9d533faf88dd4df9 (patch) | |
tree | 46767f57b47084507b9c41c8cf990f72922689b3 /lease.c | |
parent | Fixup client, including a lot of refactoring (diff) | |
download | wg-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.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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; } |