From 58f0ac45ed664f56717f3458e1537bc22a449abd Mon Sep 17 00:00:00 2001 From: otto <> Date: Mon, 12 Feb 2007 20:00:14 +0000 Subject: [PATCH] get cheaper random bytes, less waste and no getpid() calls, which are done by arc4random(); ok millert@ deraadt@ --- src/lib/libc/stdlib/malloc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c index 39951bc9..67f5de51 100644 --- a/src/lib/libc/stdlib/malloc.c +++ b/src/lib/libc/stdlib/malloc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: malloc.c,v 1.85 2006/12/19 13:00:50 otto Exp $ */ +/* $OpenBSD: malloc.c,v 1.86 2007/02/12 20:00:14 otto Exp $ */ /* * ---------------------------------------------------------------------------- @@ -1672,6 +1672,7 @@ not_return: static void free_bytes(void *ptr) { + u_int8_t __arc4_getbyte(void); struct pginfo **mp, **pd, *info; struct pdinfo *pi; #ifdef MALLOC_EXTRA_SANITY @@ -1687,7 +1688,7 @@ free_bytes(void *ptr) /* delay return, returning a random something from before instead */ - tmpidx = arc4random() % 16; + tmpidx = __arc4_getbyte() % 16; tmpptr = chunk_buffer[tmpidx]; chunk_buffer[tmpidx] = ptr; ptr = tmpptr;