- (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 20010726
- (stevesk) use mysignal() in protocol 1 loop now that the SIGCHLD - (stevesk) use mysignal() in protocol 1 loop now that the SIGCHLD
handler has converged. handler has converged.
@ -6103,4 +6107,4 @@
- Wrote replacements for strlcpy and mkdtemp - Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1 - 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 "pathnames.h"
#include "log.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 #ifndef offsetof
# define offsetof(type, member) ((size_t) &((type *)0)->member) # define offsetof(type, member) ((size_t) &((type *)0)->member)
@ -505,7 +505,9 @@ hash_output_from_command(entropy_source_t *src, char *hash)
break; break;
case 1: case 1:
/* command input */ /* 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); RAND_add(&bytes_read, sizeof(&bytes_read), 0.0);
if (bytes_read == -1) { if (bytes_read == -1) {
error_abort = 1; error_abort = 1;