diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libc/crypt/arc4random.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/lib/libc/crypt/arc4random.c b/src/lib/libc/crypt/arc4random.c index e08b729a04..4b6cde63fb 100644 --- a/src/lib/libc/crypt/arc4random.c +++ b/src/lib/libc/crypt/arc4random.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: arc4random.c,v 1.31 2014/05/31 10:32:12 jca Exp $ */ | 1 | /* $OpenBSD: arc4random.c,v 1.32 2014/06/13 15:36:37 deraadt Exp $ */ |
| 2 | 2 | ||
| 3 | /* | 3 | /* |
| 4 | * Copyright (c) 1996, David Mazieres <dm@uun.org> | 4 | * Copyright (c) 1996, David Mazieres <dm@uun.org> |
| @@ -77,15 +77,10 @@ _rs_init(u_char *buf, size_t n) | |||
| 77 | static void | 77 | static void |
| 78 | _rs_stir(void) | 78 | _rs_stir(void) |
| 79 | { | 79 | { |
| 80 | int mib[2]; | ||
| 81 | size_t len; | ||
| 82 | u_char rnd[KEYSZ + IVSZ]; | 80 | u_char rnd[KEYSZ + IVSZ]; |
| 83 | 81 | ||
| 84 | mib[0] = CTL_KERN; | 82 | if (getentropy(rnd, sizeof rnd) == -1) |
| 85 | mib[1] = KERN_ARND; | 83 | abort(); |
| 86 | |||
| 87 | len = sizeof(rnd); | ||
| 88 | sysctl(mib, 2, rnd, &len, NULL, 0); | ||
| 89 | 84 | ||
| 90 | if (!rs_initialized) { | 85 | if (!rs_initialized) { |
| 91 | rs_initialized = 1; | 86 | rs_initialized = 1; |
