diff options
author | djm <> | 2008-04-13 00:22:17 +0000 |
---|---|---|
committer | djm <> | 2008-04-13 00:22:17 +0000 |
commit | 3e091e5f9bb5ae7fbc3f63db4474a599ad3fe529 (patch) | |
tree | 0e1965dcc8091ab020514725a20f44d719ea77a4 | |
parent | d1031d50623e71c1ec734e02b7cd61ec97899d9f (diff) | |
download | openbsd-3e091e5f9bb5ae7fbc3f63db4474a599ad3fe529.tar.gz openbsd-3e091e5f9bb5ae7fbc3f63db4474a599ad3fe529.tar.bz2 openbsd-3e091e5f9bb5ae7fbc3f63db4474a599ad3fe529.zip |
Use arc4random_buf() when requesting more than a single word of output
Use arc4random_uniform() when the desired random number upper bound
is not a power of two
ok deraadt@ millert@
-rw-r--r-- | src/lib/libc/stdlib/malloc.c | 4 | ||||
-rw-r--r-- | src/regress/lib/libc/malloc/malloc0test/malloc0test.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c index 8348b7ede1..c4869527ad 100644 --- a/src/lib/libc/stdlib/malloc.c +++ b/src/lib/libc/stdlib/malloc.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: malloc.c,v 1.88 2008/02/20 18:31:34 otto Exp $ */ | 1 | /* $OpenBSD: malloc.c,v 1.89 2008/04/13 00:22:16 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * ---------------------------------------------------------------------------- | 4 | * ---------------------------------------------------------------------------- |
@@ -1140,7 +1140,7 @@ malloc_bytes(size_t size) | |||
1140 | 1140 | ||
1141 | if (malloc_guard) { | 1141 | if (malloc_guard) { |
1142 | /* Walk to a random position. */ | 1142 | /* Walk to a random position. */ |
1143 | i = arc4random() % bp->free; | 1143 | i = arc4random_uniform(bp->free); |
1144 | while (i > 0) { | 1144 | while (i > 0) { |
1145 | u += u; | 1145 | u += u; |
1146 | k++; | 1146 | k++; |
diff --git a/src/regress/lib/libc/malloc/malloc0test/malloc0test.c b/src/regress/lib/libc/malloc/malloc0test/malloc0test.c index eb00954f92..06ff0996ee 100644 --- a/src/regress/lib/libc/malloc/malloc0test/malloc0test.c +++ b/src/regress/lib/libc/malloc/malloc0test/malloc0test.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: malloc0test.c,v 1.4 2004/08/04 12:02:57 otto Exp $ */ | 1 | /* $OpenBSD: malloc0test.c,v 1.5 2008/04/13 00:22:17 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Public domain. 2001, Theo de Raadt | 3 | * Public domain. 2001, Theo de Raadt |
4 | */ | 4 | */ |
@@ -92,7 +92,7 @@ usage: | |||
92 | limit = LONG_MAX; | 92 | limit = LONG_MAX; |
93 | 93 | ||
94 | for (count = 0; count < limit; count++) { | 94 | for (count = 0; count < limit; count++) { |
95 | size = arc4random() % SIZE; | 95 | size = arc4random_uniform(SIZE); |
96 | blob = malloc(size); | 96 | blob = malloc(size); |
97 | if (blob == NULL) { | 97 | if (blob == NULL) { |
98 | fprintf(stderr, "success: out of memory\n"); | 98 | fprintf(stderr, "success: out of memory\n"); |