diff options
author | Werner Koch <wk@gnupg.org> | 1999-01-20 18:10:28 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 1999-01-20 18:10:28 +0000 |
commit | 90fb92ebefa6ca9d0a61f7a0137512b21959309e (patch) | |
tree | 90d66f43c18b66cba3d32f5ed3dd3a1b7cfae77f | |
parent | f54f6f1067d777d68958836bf9d73fd981dfc173 (diff) | |
download | libgcrypt-90fb92ebefa6ca9d0a61f7a0137512b21959309e.tar.gz |
See ChangeLog: Wed Jan 20 18:59:49 CET 1999 Werner Koch
-rw-r--r-- | THANKS | 1 | ||||
-rw-r--r-- | cipher/ChangeLog | 4 | ||||
-rw-r--r-- | cipher/rndunix.c | 5 |
3 files changed, 9 insertions, 1 deletions
@@ -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; |