]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: rand - Fix random number bounding
authorAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 13 Aug 2020 08:35:17 +0000 (11:35 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 11 Sep 2020 07:07:19 +0000 (07:07 +0000)
src/lib/rand.c

index ff7675dcc651d35230f42abea932a91f12adb65b..9fbcac37a7ba3752eff3330f07a716e254a6db76 100644 (file)
@@ -31,7 +31,8 @@ uint32_t i_rand_limit(uint32_t upper_bound)
 {
        i_assert(upper_bound > 0);
 
-       uint32_t val, min = -upper_bound % upper_bound;
+       uint32_t val;
+       uint32_t min = ~(upper_bound - 1) % upper_bound;
        while((val = i_rand()) < min);
        return val % upper_bound;
 }