diff options
author | Tim Rice <tim@multitalents.net> | 2002-04-21 11:26:10 -0700 |
---|---|---|
committer | Tim Rice <tim@multitalents.net> | 2002-04-21 11:26:10 -0700 |
commit | f02dccc0dc5711d5bdfb45f92a2f1bba41e365f0 (patch) | |
tree | db24726055f610d63839c5f1c6bcfb0f72e5d35a /entropy.c | |
parent | a370f4dcc6ae04c430ad97c28a2bd945c2350120 (diff) |
[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
Diffstat (limited to 'entropy.c')
-rw-r--r-- | entropy.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -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); } |