* src/login.c: Move update_utmp() after the PID or session ID
changed in order to get more accurate data in UTMP. This also fixes "exec login" when login in installed setuid.
This commit is contained in:
parent
009125484e
commit
91fc51387c
@ -1,3 +1,9 @@
|
||||
2009-04-27 Nicolas François <nicolas.francois@centraliens.net>
|
||||
|
||||
* src/login.c: Move update_utmp() after the PID or session ID
|
||||
changed in order to get more accurate data in UTMP. This also
|
||||
fixes "exec login" when login in installed setuid.
|
||||
|
||||
2009-04-27 Nicolas François <nicolas.francois@centraliens.net>
|
||||
|
||||
* src/login.c: Reuse a string and avoid an untranslated message
|
||||
|
@ -1109,8 +1109,6 @@ int main (int argc, char **argv)
|
||||
addenv ("IFS= \t\n", NULL); /* ... instead, set a safe IFS */
|
||||
}
|
||||
|
||||
update_utmp (username, tty, hostname, utent);
|
||||
|
||||
if (pwd->pw_shell[0] == '*') { /* subsystem root */
|
||||
pwd->pw_shell++; /* skip the '*' */
|
||||
subsystem (pwd); /* figure out what to execute */
|
||||
@ -1198,6 +1196,7 @@ int main (int argc, char **argv)
|
||||
}
|
||||
/* child */
|
||||
#endif
|
||||
|
||||
/* If we were init, we need to start a new session */
|
||||
if (getppid() == 1) {
|
||||
setsid();
|
||||
@ -1206,6 +1205,11 @@ int main (int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* The utmp entry needs to be updated to indicate the new status
|
||||
* of the session, the new PID and SID.
|
||||
*/
|
||||
update_utmp (username, tty, hostname, utent);
|
||||
|
||||
/* The pwd and spwd entries for the user have been copied.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user