+ privileged = 1;
+ temporarily_use_uid_effective = 1;
+ saved_egroupslen = getgroups(NGROUPS_MAX, saved_egroups);
+ if (saved_egroupslen < 0)
+ fatal("getgroups: %.100s", strerror(errno));
+
+ /* set and save the user's groups */
+ if (user_groupslen == -1) {
+ if (initgroups(pw->pw_name, pw->pw_gid) < 0)
+ fatal("initgroups: %s: %.100s", pw->pw_name,
+ strerror(errno));
+ user_groupslen = getgroups(NGROUPS_MAX, user_groups);
+ if (user_groupslen < 0)
+ fatal("getgroups: %.100s", strerror(errno));
+ }
+#ifndef HAVE_CYGWIN