summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--entropy.c14
2 files changed, 9 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 9fd1c786..f6f70c91 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
- (djm) Added password expiry checking (no password change support)
- (djm) Make EGD failures non-fatal if OpenSSL's entropy pool is still OK
based on patch from Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE>
+ - (djm) Fix fixed EGD code.
- OpenBSD CVS update
- provos@cvs.openbsd.org 2000/06/25 14:17:58
[channels.c]
diff --git a/entropy.c b/entropy.c
index 83759ca6..d8eba654 100644
--- a/entropy.c
+++ b/entropy.c
@@ -35,7 +35,7 @@
#include <openssl/rand.h>
#include <openssl/sha.h>
-RCSID("$Id: entropy.c,v 1.15 2000/06/26 03:01:33 djm Exp $");
+RCSID("$Id: entropy.c,v 1.16 2000/06/26 03:55:31 djm Exp $");
#ifndef offsetof
# define offsetof(type, member) ((size_t) &((type *)0)->member)
@@ -158,11 +158,13 @@ seed_rng(void)
debug("Seeding random number generator");
- if (!get_random_bytes(buf, sizeof(buf)) && !RAND_status())
- fatal("Entropy collection failed and entropy exhausted");
-
- RAND_add(buf, sizeof(buf), sizeof(buf));
-
+ if (!get_random_bytes(buf, sizeof(buf))) {
+ if (!RAND_status())
+ fatal("Entropy collection failed and entropy exhausted");
+ } else {
+ RAND_add(buf, sizeof(buf), sizeof(buf));
+ }
+
memset(buf, '\0', sizeof(buf));
}