View | Details | Raw Unified | Return to bug 1412 | Differences between
and this patch

Collapse All | Expand All

(-)uidswap.c (+10 lines)
Lines 233-238 permanently_set_uid(struct passwd *pw) Link Here
233
		fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno));
233
		fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno));
234
#endif
234
#endif
235
235
236
#ifdef __APPLE__
237
	/*
238
	 * OS X requires initgroups after setgid to opt back into
239
	 * memberd support for >16 supplemental groups.
240
	 */
241
	if (initgroups(pw->pw_name, pw->pw_gid) < 0)
242
		fatal("initgroups %.100s %u: %.100s",
243
		    pw->pw_name, (u_int)pw->pw_gid, strerror(errno));
244
#endif
245
236
#if defined(HAVE_SETRESUID) && !defined(BROKEN_SETRESUID)
246
#if defined(HAVE_SETRESUID) && !defined(BROKEN_SETRESUID)
237
	if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) < 0)
247
	if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) < 0)
238
		fatal("setresuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno));
248
		fatal("setresuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno));

Return to bug 1412