diff --git a/ChangeLog b/ChangeLog index 2dadcd73b..c967c24b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20020421 + - (tim) [entropy.c.] Portability fix for SCO Unix 3.2v4.x (SCO OSR 3.0). + entropy.c needs seteuid(getuid()) for the setuid(original_uid) to succeed. + Patch by gert@greenie.muc.de. This fixes one part of Bug 208 + 20020418 - (djm) Avoid SIGCHLD breakage when run from rsync. Fix from Sturle Sunde @@ -8258,4 +8263,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.2060 2002/04/18 12:53:22 djm Exp $ +$Id: ChangeLog,v 1.2061 2002/04/21 18:26:10 tim Exp $ diff --git a/entropy.c b/entropy.c index 84c15eb76..da1a391f3 100644 --- a/entropy.c +++ b/entropy.c @@ -45,7 +45,7 @@ * XXX: we should tell the child how many bytes we need. */ -RCSID("$Id: entropy.c,v 1.42 2002/04/18 12:53:27 djm Exp $"); +RCSID("$Id: entropy.c,v 1.43 2002/04/21 18:26:10 tim Exp $"); #ifndef OPENSSL_PRNG_ONLY #define RANDOM_SEED_SIZE 48 @@ -87,9 +87,10 @@ seed_rng(void) close(devnull); if (original_uid != original_euid && - setuid(original_uid) == -1) { - fprintf(stderr, "(rand child) setuid: %s\n", - strerror(errno)); + ( seteuid(getuid()) == -1 || + setuid(original_uid) == -1) ) { + fprintf(stderr, "(rand child) setuid(%d): %s\n", + original_uid, strerror(errno)); _exit(1); }