summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>1999-01-20 18:10:28 +0000
committerWerner Koch <wk@gnupg.org>1999-01-20 18:10:28 +0000
commit90fb92ebefa6ca9d0a61f7a0137512b21959309e (patch)
tree90d66f43c18b66cba3d32f5ed3dd3a1b7cfae77f
parentf54f6f1067d777d68958836bf9d73fd981dfc173 (diff)
downloadlibgcrypt-90fb92ebefa6ca9d0a61f7a0137512b21959309e.tar.gz
See ChangeLog: Wed Jan 20 18:59:49 CET 1999 Werner Koch
-rw-r--r--THANKS1
-rw-r--r--cipher/ChangeLog4
-rw-r--r--cipher/rndunix.c5
3 files changed, 9 insertions, 1 deletions
diff --git a/THANKS b/THANKS
index fb9835ff..e880ad22 100644
--- a/THANKS
+++ b/THANKS
@@ -72,6 +72,7 @@ SL Baur steve@xemacs.org
Stefan Karrmann S.Karrmann@gmx.net
Steffen Ullrich ccrlphr@xensei.com
Steffen Zahn zahn@berlin.snafu.de
+Steven Bakker steven@icoe.att.com
Susanne Schultz schultz@hsp.de
Thiago Jung Bauermann jungmann@usa.net
Thomas Roessler roessler@guug.de
diff --git a/cipher/ChangeLog b/cipher/ChangeLog
index c46ca5d8..273b6fde 100644
--- a/cipher/ChangeLog
+++ b/cipher/ChangeLog
@@ -1,3 +1,7 @@
+Wed Jan 20 18:59:49 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
+
+ * rndunix.c (gather_random): Fix to avoid infinite loop.
+
Sun Jan 17 11:04:33 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* des.c (is_weak_key): Replace system memcmp due to bugs
diff --git a/cipher/rndunix.c b/cipher/rndunix.c
index f0b63197..716b0267 100644
--- a/cipher/rndunix.c
+++ b/cipher/rndunix.c
@@ -709,6 +709,7 @@ gather_random( void (*add)(const void*, size_t, int), int requester,
/* now read from the gatherer */
while( length ) {
int goodness;
+ ulong subtract;
if( read_a_msg( pipedes[0], &msg ) ) {
g10_log_error("reading from gatherer pipe failed: %s\n",
@@ -742,7 +743,9 @@ gather_random( void (*add)(const void*, size_t, int), int requester,
(*add)( msg.data, n, requester );
/* this is the trick how e cope with the goodness */
- length -= (ulong)n * goodness / 100;
+ subtract = (ulong)n * goodness / 100;
+ /* subtract at least 1 byte to avoid infinite loops */
+ length -= subtract ? subtract : 1;
}
return 0;