=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/login/login.c,v retrieving revision 1.14 retrieving revision 1.15 diff -c -r1.14 -r1.15 *** src/usr.bin/login/login.c 1996/12/04 04:04:41 1.14 --- src/usr.bin/login/login.c 1996/12/22 03:25:55 1.15 *************** *** 1,4 **** ! /* $OpenBSD: login.c,v 1.14 1996/12/04 04:04:41 millert Exp $ */ /* $NetBSD: login.c,v 1.13 1996/05/15 23:50:16 jtc Exp $ */ /*- --- 1,4 ---- ! /* $OpenBSD: login.c,v 1.15 1996/12/22 03:25:55 tholo Exp $ */ /* $NetBSD: login.c,v 1.13 1996/05/15 23:50:16 jtc Exp $ */ /*- *************** *** 44,50 **** #if 0 static char sccsid[] = "@(#)login.c 8.4 (Berkeley) 4/2/94"; #endif ! static char rcsid[] = "$OpenBSD: login.c,v 1.14 1996/12/04 04:04:41 millert Exp $"; #endif /* not lint */ /* --- 44,50 ---- #if 0 static char sccsid[] = "@(#)login.c 8.4 (Berkeley) 4/2/94"; #endif ! static char rcsid[] = "$OpenBSD: login.c,v 1.15 1996/12/22 03:25:55 tholo Exp $"; #endif /* not lint */ /* *************** *** 411,416 **** --- 411,417 ---- if (krbtkfile_env) dofork(); #endif + (void)setegid(pwd->pw_gid); (void)setgid(pwd->pw_gid); initgroups(username, pwd->pw_gid); *************** *** 496,503 **** /* Discard permissions last so can't get killed and drop core. */ if (rootlogin) (void) setuid(0); ! else (void) setuid(pwd->pw_uid); execlp(pwd->pw_shell, tbuf, 0); err(1, "%s", pwd->pw_shell); --- 497,506 ---- /* Discard permissions last so can't get killed and drop core. */ if (rootlogin) (void) setuid(0); ! else { ! (void) seteuid(pwd->pw_uid); (void) setuid(pwd->pw_uid); + } execlp(pwd->pw_shell, tbuf, 0); err(1, "%s", pwd->pw_shell);