summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/misc.c b/misc.c
index 761fca0..a954d15 100644
--- a/misc.c
+++ b/misc.c
@@ -605,10 +605,21 @@ child_access ()
/* Set both the real and effective UID and GID to the user's.
They cannot be changed back to make's. */
+#ifndef HAVE_SETREUID
if (setuid (user_uid) < 0)
pfatal_with_name ("child_access: setuid");
+#else
+ if (setreuid (user_uid, user_uid) < 0)
+ pfatal_with_name ("child_access: setreuid");
+#endif
+
+#ifndef HAVE_SETREGID
if (setgid (user_gid) < 0)
pfatal_with_name ("child_access: setgid");
+#else
+ if (setregid (user_gid, user_gid) < 0)
+ pfatal_with_name ("child_access: setregid");
+#endif
}
#ifdef NEED_GET_PATH_MAX