summaryrefslogtreecommitdiff
path: root/entropy.c
diff options
context:
space:
mode:
authorTim Rice <tim@multitalents.net>2002-04-21 11:26:10 -0700
committerTim Rice <tim@multitalents.net>2002-04-21 11:26:10 -0700
commitf02dccc0dc5711d5bdfb45f92a2f1bba41e365f0 (patch)
treedb24726055f610d63839c5f1c6bcfb0f72e5d35a /entropy.c
parenta370f4dcc6ae04c430ad97c28a2bd945c2350120 (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.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/entropy.c b/entropy.c
index 84c15eb76..da1a391f3 100644
--- a/entropy.c
+++ b/entropy.c
@@ -45,7 +45,7 @@
45 * XXX: we should tell the child how many bytes we need. 45 * XXX: we should tell the child how many bytes we need.
46 */ 46 */
47 47
48RCSID("$Id: entropy.c,v 1.42 2002/04/18 12:53:27 djm Exp $"); 48RCSID("$Id: entropy.c,v 1.43 2002/04/21 18:26:10 tim Exp $");
49 49
50#ifndef OPENSSL_PRNG_ONLY 50#ifndef OPENSSL_PRNG_ONLY
51#define RANDOM_SEED_SIZE 48 51#define RANDOM_SEED_SIZE 48
@@ -87,9 +87,10 @@ seed_rng(void)
87 close(devnull); 87 close(devnull);
88 88
89 if (original_uid != original_euid && 89 if (original_uid != original_euid &&
90 setuid(original_uid) == -1) { 90 ( seteuid(getuid()) == -1 ||
91 fprintf(stderr, "(rand child) setuid: %s\n", 91 setuid(original_uid) == -1) ) {
92 strerror(errno)); 92 fprintf(stderr, "(rand child) setuid(%d): %s\n",
93 original_uid, strerror(errno));
93 _exit(1); 94 _exit(1);
94 } 95 }
95 96