diff options
| author | otto <> | 2007-02-12 20:00:14 +0000 |
|---|---|---|
| committer | otto <> | 2007-02-12 20:00:14 +0000 |
| commit | d1c8932c1d4d3973f285faadc8ffb6c19023a2a1 (patch) | |
| tree | 2a14a83a2a627922c737b20a5da2a8cc3278a686 /src/lib/libc | |
| parent | 69c771d75d0fc0fe568375eaf8269d6afa45d501 (diff) | |
| download | openbsd-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/libc')
| -rw-r--r-- | src/lib/libc/stdlib/malloc.c | 5 |
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: | |||
| 1672 | static void | 1672 | static void |
| 1673 | free_bytes(void *ptr) | 1673 | free_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; |
