+ saved_egid = getegid();
+ debug("temporarily_use_uid: %d/%d (e=%d)",
+ pw->pw_uid, pw->pw_gid, saved_euid);
+ if (saved_euid != 0) {
+ privileged = 0;
+ return;
+ }
+#else
+ if (geteuid() != 0) {
+ privileged = 0;
+ return;
+ }
+#endif /* SAVED_IDS_WORK_WITH_SETEUID */
+
+ privileged = 1;
+ temporarily_use_uid_effective = 1;
+ saved_egroupslen = getgroups(NGROUPS_MAX, saved_egroups);
+ if (saved_egroupslen < 0)
+ fatal("getgroups: %.100s", strerror(errno));