From 3e091e5f9bb5ae7fbc3f63db4474a599ad3fe529 Mon Sep 17 00:00:00 2001
From: djm <>
Date: Sun, 13 Apr 2008 00:22:17 +0000
Subject: 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@
---
 src/lib/libc/stdlib/malloc.c                          | 4 ++--
 src/regress/lib/libc/malloc/malloc0test/malloc0test.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

(limited to 'src')

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 @@
-/*	$OpenBSD: malloc.c,v 1.88 2008/02/20 18:31:34 otto Exp $	*/
+/*	$OpenBSD: malloc.c,v 1.89 2008/04/13 00:22:16 djm Exp $	*/
 
 /*
  * ----------------------------------------------------------------------------
@@ -1140,7 +1140,7 @@ malloc_bytes(size_t size)
 
 	if (malloc_guard) {
 		/* Walk to a random position. */
-		i = arc4random() % bp->free;
+		i = arc4random_uniform(bp->free);
 		while (i > 0) {
 			u += u;
 			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 @@
-/*	$OpenBSD: malloc0test.c,v 1.4 2004/08/04 12:02:57 otto Exp $	*/
+/*	$OpenBSD: malloc0test.c,v 1.5 2008/04/13 00:22:17 djm Exp $	*/
 /*
  * Public domain.  2001, Theo de Raadt
  */
@@ -92,7 +92,7 @@ usage:
 		limit = LONG_MAX;
 
 	for (count = 0; count < limit; count++) {
-		size = arc4random() % SIZE;
+		size = arc4random_uniform(SIZE);
 		blob = malloc(size);
 		if (blob == NULL) {
 			fprintf(stderr, "success: out of memory\n");
-- 
cgit v1.2.3-55-g6feb