summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorotto <>2007-02-12 20:00:14 +0000
committerotto <>2007-02-12 20:00:14 +0000
commitd1c8932c1d4d3973f285faadc8ffb6c19023a2a1 (patch)
tree2a14a83a2a627922c737b20a5da2a8cc3278a686 /src/lib
parent69c771d75d0fc0fe568375eaf8269d6afa45d501 (diff)
downloadopenbsd-d1c8932c1d4d3973f285faadc8ffb6c19023a2a1.tar.gz
openbsd-d1c8932c1d4d3973f285faadc8ffb6c19023a2a1.tar.bz2
openbsd-d1c8932c1d4d3973f285faadc8ffb6c19023a2a1.zip
get cheaper random bytes, less waste and no getpid() calls, which are
done by arc4random(); ok millert@ deraadt@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libc/stdlib/malloc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c
index 39951bc904..67f5de512e 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.85 2006/12/19 13:00:50 otto Exp $ */ 1/* $OpenBSD: malloc.c,v 1.86 2007/02/12 20:00:14 otto Exp $ */
2 2
3/* 3/*
4 * ---------------------------------------------------------------------------- 4 * ----------------------------------------------------------------------------
@@ -1672,6 +1672,7 @@ not_return:
1672static void 1672static void
1673free_bytes(void *ptr) 1673free_bytes(void *ptr)
1674{ 1674{
1675 u_int8_t __arc4_getbyte(void);
1675 struct pginfo **mp, **pd, *info; 1676 struct pginfo **mp, **pd, *info;
1676 struct pdinfo *pi; 1677 struct pdinfo *pi;
1677#ifdef MALLOC_EXTRA_SANITY 1678#ifdef MALLOC_EXTRA_SANITY
@@ -1687,7 +1688,7 @@ free_bytes(void *ptr)
1687 1688
1688 1689
1689 /* delay return, returning a random something from before instead */ 1690 /* delay return, returning a random something from before instead */
1690 tmpidx = arc4random() % 16; 1691 tmpidx = __arc4_getbyte() % 16;
1691 tmpptr = chunk_buffer[tmpidx]; 1692 tmpptr = chunk_buffer[tmpidx];
1692 chunk_buffer[tmpidx] = ptr; 1693 chunk_buffer[tmpidx] = ptr;
1693 ptr = tmpptr; 1694 ptr = tmpptr;