From: Andreas Schneider Date: Thu, 14 Jul 2022 05:56:39 +0000 (+0200) Subject: lib:util: Add generate_random_u64_range() X-Git-Tag: samba-4.17.0rc1~201 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cc1cac9423384bad26e3d17f9409a41321fd2714;p=thirdparty%2Fsamba.git lib:util: Add generate_random_u64_range() Signed-off-by: Andreas Schneider Reviewed-by: Stefan Metzmacher --- diff --git a/lib/util/genrand_util.c b/lib/util/genrand_util.c index fdc2654a204..82103f59bd7 100644 --- a/lib/util/genrand_util.c +++ b/lib/util/genrand_util.c @@ -50,6 +50,20 @@ _PUBLIC_ uint64_t generate_random_u64(void) return BVAL(v, 0); } +/** + * @brief Generate a random number in the given range. + * + * @param lower The lower value of the range + + * @param upper The upper value of the range + * + * @return A random number bigger than than lower and smaller than upper. + */ +_PUBLIC_ uint64_t generate_random_u64_range(uint64_t lower, uint64_t upper) +{ + return generate_random_u64() % (upper - lower) + lower; +} + _PUBLIC_ uint64_t generate_unique_u64(uint64_t veto_value) { static struct generate_unique_u64_state { diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h index b30435b4362..4762a7c523f 100644 --- a/lib/util/samba_util.h +++ b/lib/util/samba_util.h @@ -99,6 +99,8 @@ _PUBLIC_ uint32_t generate_random(void); **/ _PUBLIC_ uint64_t generate_random_u64(void); +_PUBLIC_ uint64_t generate_random_u64_range(uint64_t lower, uint64_t upper); + /** * @brief Generate random nonces usable for re-use detection. *