From: Karel Zak Date: Wed, 3 Feb 2021 13:45:15 +0000 (+0100) Subject: login: use full tty path for PAM_TTY X-Git-Tag: v2.37-rc1~141 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9c7a613c82692753a8ac48630c7af89f1805df2a;p=thirdparty%2Futil-linux.git login: use full tty path for PAM_TTY pam_set_item() man page: PAM_TTY The terminal name: prefixed by /dev/ if it is a device file; for graphical, X-based, applications the value for this item should be the $DISPLAY variable. It seems for example pam_timestamp module is not robust enough to differentiate between /dev/ and pty/0 and it assumes that '/' in the path always means '/dev/' prefix ... Fixes: https://github.com/karelzak/util-linux/issues/1242 Signed-off-by: Karel Zak --- diff --git a/login-utils/login.c b/login-utils/login.c index 552e9c1d5a..550c7df907 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -897,9 +897,11 @@ static pam_handle_t *init_loginpam(struct login_context *cxt) if (is_pam_failure(rc)) loginpam_err(pamh, rc); - rc = pam_set_item(pamh, PAM_TTY, cxt->tty_name); - if (is_pam_failure(rc)) - loginpam_err(pamh, rc); + if (cxt->tty_path) { + rc = pam_set_item(pamh, PAM_TTY, cxt->tty_path); + if (is_pam_failure(rc)) + loginpam_err(pamh, rc); + } /* * Andrew.Taylor@cal.montage.ca: Provide a user prompt to PAM so that