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(-) 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