} while (0)
extern int get_terminal_width(void);
-extern int get_terminal_name(const char **path, const char **name, const char **number);
+extern int get_terminal_name(int fd, const char **path, const char **name,
+ const char **number);
#define UL_TTY_KEEPCFLAGS (1 << 1)
#define UL_TTY_UTF8 (1 << 2)
return 0;
}
-int get_terminal_name(const char **path,
+int get_terminal_name(int fd,
+ const char **path,
const char **name,
const char **number)
{
if (number)
*number = NULL;
- tty = ttyname(STDERR_FILENO);
+ tty = ttyname(fd);
if (!tty)
return -1;
if (path)
cxt->tty_mode = (mode_t) getlogindefs_num("TTYPERM", TTY_MODE);
- get_terminal_name(&cxt->tty_path, &cxt->tty_name, &cxt->tty_number);
+ get_terminal_name(0, &cxt->tty_path, &cxt->tty_name, &cxt->tty_number);
/*
* In case login is suid it was possible to use a hardlink as stdin
old_user = pwd ? pwd->pw_name : "";
}
- if (get_terminal_name(NULL, &tty, NULL) == 0 && tty)
+ if (get_terminal_name(STDERR_FILENO, NULL, &tty, NULL) == 0 && tty)
tty = "none";
openlog (program_invocation_short_name, 0 , LOG_AUTH);
pw && pw->pw_name ? pw->pw_name : "(unknown)",
sizeof(ut.ut_user));
- get_terminal_name(NULL, &tty_name, &tty_num);
+ get_terminal_name(STDERR_FILENO, NULL, &tty_name, &tty_num);
if (tty_num)
xstrncpy(ut.ut_id, tty_num, sizeof(ut.ut_id));
if (tty_name)