- 'fixprogs' perl script to eliminate non-working entropy commands, and
optionally run 'ent' to measure command entropy
- Applied Tom Bertelson's <tbert@abac.com> AIX authentication fix
+ - Avoid WCOREDUMP complation errors for systems that lack it
+ - Avoid SIGCHLD warnings from entropy commands
20000513
- Fix for non-recognised DSA keys from Arkadiusz Miskiewicz
void
seed_rng(void)
{
+ void *old_sigchld_handler;
+
if (!prng_commands_loaded) {
if (!prng_read_commands(SSH_PRNG_COMMAND_FILE))
fatal("PRNG initialisation failed -- exiting.");
prng_commands_loaded = 1;
}
+ /* Make sure some other sigchld handler doesn't reap our entropy */
+ /* commands */
+ old_sigchld_handler = signal(SIGCHLD, SIG_DFL);
+
debug("Seeding random number generator.");
debug("OpenSSL random status is now %i\n", RAND_status());
debug("%i bytes from system calls", (int)stir_from_system());
debug("%i bytes from programs", (int)stir_from_programs());
debug("OpenSSL random status is now %i\n", RAND_status());
+ signal(SIGCHLD, old_sigchld_handler);
+
if (!RAND_status())
fatal("Couldn't initialise builtin random number generator -- exiting.");
channel_request_start(s->chanid,
"exit-signal", 0);
packet_put_int(WTERMSIG(status));
+#ifdef WCOREDUMP
packet_put_char(WCOREDUMP(status));
+#else /* WCOREDUMP */
+ packet_put_char(0);
+#endif /* WCOREDUMP */
packet_put_cstring("");
packet_put_cstring("");
packet_send();