- (djm) Fix interrupted read in entropy gatherer. Spotted by markus@ on

a fast UltraSPARC.
This commit is contained in:
Damien Miller 2001-08-06 16:51:49 +10:00
parent e26a155415
commit 2ab5924d1f
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,7 @@
20010803
- (djm) Fix interrupted read in entropy gatherer. Spotted by markus@ on
a fast UltraSPARC.
20010726
- (stevesk) use mysignal() in protocol 1 loop now that the SIGCHLD
handler has converged.
@ -6103,4 +6107,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
$Id: ChangeLog,v 1.1424 2001/07/26 17:51:49 stevesk Exp $
$Id: ChangeLog,v 1.1425 2001/08/06 06:51:49 djm Exp $

View File

@ -40,7 +40,7 @@
#include "pathnames.h"
#include "log.h"
RCSID("$Id: entropy.c,v 1.37 2001/06/27 13:36:08 djm Exp $");
RCSID("$Id: entropy.c,v 1.38 2001/08/06 06:51:49 djm Exp $");
#ifndef offsetof
# define offsetof(type, member) ((size_t) &((type *)0)->member)
@ -505,7 +505,9 @@ hash_output_from_command(entropy_source_t *src, char *hash)
break;
case 1:
/* command input */
bytes_read = read(p[0], buf, sizeof(buf));
do {
bytes_read = read(p[0], buf, sizeof(buf));
} while (bytes_read == -1 && errno == EINTR);
RAND_add(&bytes_read, sizeof(&bytes_read), 0.0);
if (bytes_read == -1) {
error_abort = 1;