diff options
author | Miroslav Lichvar <mlichvar@redhat.com> | 2014-04-26 18:25:45 +0200 |
---|---|---|
committer | Amadeusz Sławiński <amade@asmblr.net> | 2014-04-26 18:25:45 +0200 |
commit | d6d34f0b3b440423848063781d7a11b837d54761 (patch) | |
tree | 49e496e9cedeab2db6af9e1dfa051fd3109fd305 | |
parent | 4e1946df99b31229f2c36406dcfab3d3b3d31e8d (diff) | |
download | screen-d6d34f0b3b440423848063781d7a11b837d54761.tar.gz |
Set PAM_TTY item.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
-rw-r--r-- | src/attacher.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/attacher.c b/src/attacher.c index 7159c7f..85b90e0 100644 --- a/src/attacher.c +++ b/src/attacher.c @@ -847,6 +847,7 @@ screen_builtin_lck() #ifdef USE_PAM pam_handle_t *pamh = 0; int pam_error; + char *tty_name; #endif char *pass = 0, mypass[16 + 1], salt[3]; int using_pam = 1; @@ -932,6 +933,15 @@ screen_builtin_lck() pam_error = pam_start("screen", ppp->pw_name, &PAM_conversation, &pamh); if (pam_error != PAM_SUCCESS) AttacherFinit(SIGARG); /* goodbye */ + + if (strncmp(attach_tty, "/dev/", 5) == 0) + tty_name = attach_tty + 5; + else + tty_name = attach_tty; + pam_error = pam_set_item(pamh, PAM_TTY, tty_name); + if (pam_error != PAM_SUCCESS) + AttacherFinit(SIGARG); /* goodbye */ + pam_error = pam_authenticate(pamh, 0); pam_end(pamh, pam_error); PAM_conversation.appdata_ptr = 0; |