mirror of
git://anongit.mindrot.org/openssh.git
synced 2025-02-08 18:07:07 +00:00
- Fix EGD problems (Thanks to Ben Taylor <bent@clark.net>)
- Retry /dev/urandom reads interrupted by signal (report from Robert Hardy <rhardy@webcon.net>)
This commit is contained in:
parent
859cec0250
commit
d71b12ee5b
@ -10,6 +10,9 @@
|
||||
- Tidy RCSIDs of bsd-*.c
|
||||
- Added autoconf test and macro to deal with old PAM libraries
|
||||
pam_strerror definition (one arg vs two).
|
||||
- Fix EGD problems (Thanks to Ben Taylor <bent@clark.net>)
|
||||
- Retry /dev/urandom reads interrupted by signal (report from
|
||||
Robert Hardy <rhardy@webcon.net>)
|
||||
|
||||
19991121
|
||||
- OpenBSD CVS Changes:
|
||||
|
1
README
1
README
@ -52,6 +52,7 @@ Credits -
|
||||
Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
|
||||
Theo de Raadt, and Dug Song - Creators of OpenSSH
|
||||
'jonchen' - the original author of PAM support of SSH
|
||||
Ben Taylor <bent@clark.net> - Solaris debugging and fixes
|
||||
Chip Salzenberg <chip@valinux.com> - Assorted patches
|
||||
Dan Brosemer <odin@linuxfreak.com> - Autoconf and build fixes & Debian scripts
|
||||
Jim Knoble <jmknoble@pobox.com> - RPM spec file fixes
|
||||
|
12
helper.c
12
helper.c
@ -100,8 +100,7 @@ void get_random_bytes(unsigned char *buf, int len)
|
||||
if (sizeof(RANDOM_POOL) > sizeof(addr.sun_path))
|
||||
fatal("Random pool path is too long");
|
||||
|
||||
strncpy(addr.sun_path, RANDOM_POOL, sizeof(addr.sun_path - 1));
|
||||
addr.sun_path[sizeof(addr.sun_path - 1)] = '\0';
|
||||
strcpy(addr.sun_path, RANDOM_POOL);
|
||||
|
||||
addr_len = offsetof(struct sockaddr_un, sun_path) + sizeof(RANDOM_POOL);
|
||||
|
||||
@ -130,9 +129,12 @@ void get_random_bytes(unsigned char *buf, int len)
|
||||
|
||||
#endif /* HAVE_EGD */
|
||||
|
||||
c = read(random_pool, buf, len);
|
||||
if (c == -1)
|
||||
fatal("Couldn't read from random pool \"%s\": %s", RANDOM_POOL, strerror(errno));
|
||||
do {
|
||||
c = read(random_pool, buf, len);
|
||||
|
||||
if ((c == -1) && (errno != EINTR))
|
||||
fatal("Couldn't read from random pool \"%s\": %s", RANDOM_POOL, strerror(errno));
|
||||
} while (c == -1);
|
||||
|
||||
if (c != len)
|
||||
fatal("Short read from random pool \"%s\"", RANDOM_POOL);
|
||||
|
Loading…
Reference in New Issue
Block a user