DVG-4694589_16_group_limit_fix.patch   [plain text]


diff -uNr ../openssh-4.5p1.orig/uidswap.c ./uidswap.c
--- ../openssh-4.5p1.orig/uidswap.c	2006-08-04 19:39:41.000000000 -0700
+++ ./uidswap.c	2007-01-12 19:26:22.000000000 -0800
@@ -233,6 +239,9 @@
 		fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno));
 #endif
 
+	if (initgroups(pw->pw_name, pw->pw_gid) < 0)
+		fatal("setgid %.100s %u: %.100s", pw->pw_name, (u_int)pw->pw_gid, strerror(errno));
+
 #if defined(HAVE_SETRESUID) && !defined(BROKEN_SETRESUID)
 	if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) < 0)
 		fatal("setresuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno));