* libmisc/console.c (console): Remove the leading /dev/ from the

tty before comparing with the lines specified by CONSOLE.
	* src/su.c: Do not remove the /dev/ prefix since it is done by
	console().
This commit is contained in:
nekral-guest 2009-05-16 18:19:24 +00:00
parent 8eaa6f8b4c
commit f634cd3e2c
3 changed files with 13 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2009-05-16 Nicolas François <nicolas.francois@centraliens.net>
* libmisc/console.c (console): Remove the leading /dev/ from the
tty before comparing with the lines specified by CONSOLE.
* src/su.c: Do not remove the /dev/ prefix since it is done by
console().
2009-05-16 Nicolas François <nicolas.francois@centraliens.net>
* man/login.defs.d/CONSOLE.xml: Document the format of the CONSOLE

View File

@ -121,6 +121,10 @@ static bool is_listed (const char *cfgin, const char *tty, bool def)
bool console (const char *tty)
{
if (strncmp (tty, "/dev/", 5) == 0) {
tty += 5;
}
return is_listed ("CONSOLE", tty, true);
}

View File

@ -425,13 +425,8 @@ int main (int argc, char **argv)
* Get the tty name. Entries will be logged indicating that the user
* tried to change to the named new user from the current terminal.
*/
cp = ttyname (0);
if ((isatty (0) != 0) && (NULL != cp)) {
if (strncmp (cp, "/dev/", 5) == 0) {
tty = cp + 5;
} else {
tty = cp;
}
tty = ttyname (0);
if ((isatty (0) != 0) && (NULL != tty)) {
#ifndef USE_PAM
is_console = console (tty);
#endif