summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libc/stdlib/rand.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/libc/stdlib/rand.c b/lib/libc/stdlib/rand.c
index 270e63f..4f4aa8d 100644
--- a/lib/libc/stdlib/rand.c
+++ b/lib/libc/stdlib/rand.c
@@ -83,12 +83,16 @@ do_rand(unsigned long *ctx)
int
rand_r(unsigned int *ctx)
{
- u_long val = (u_long) *ctx;
-#ifndef USE_WEAK_SEEDING
+ u_long val;
+ int r;
+
+#ifdef USE_WEAK_SEEDING
+ val = *ctx;
+#else
/* Transform to [1, 0x7ffffffe] range. */
- val = (val % 0x7ffffffe) + 1;
+ val = (*ctx % 0x7ffffffe) + 1;
#endif
- int r = do_rand(&val);
+ r = do_rand(&val);
#ifdef USE_WEAK_SEEDING
*ctx = (unsigned int)val;
OpenPOWER on IntegriCloud