summaryrefslogtreecommitdiff
path: root/auth-pam.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2003-09-02 23:18:52 +1000
committerDamien Miller <djm@mindrot.org>2003-09-02 23:18:52 +1000
commit341c6e687c2e2d3629f19d4b43fccc2dc8d7f9d3 (patch)
treea54163ac7548e84d257e611333f8e3cf628a7b9d /auth-pam.c
parentf4b6f10deda4413528ddb5ffbb69c5da84ae58b9 (diff)
- (djm) Bug #423: reorder setting of PAM_TTY and calling of PAM session
management (now done in do_setusercontext). Largely from michael_steffens AT hp.com
Diffstat (limited to 'auth-pam.c')
-rw-r--r--auth-pam.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/auth-pam.c b/auth-pam.c
index 3f3fbf28c..bc378a32b 100644
--- a/auth-pam.c
+++ b/auth-pam.c
@@ -31,7 +31,7 @@
31 31
32/* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */ 32/* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */
33#include "includes.h" 33#include "includes.h"
34RCSID("$Id: auth-pam.c,v 1.69 2003/09/02 13:12:06 djm Exp $"); 34RCSID("$Id: auth-pam.c,v 1.70 2003/09/02 13:18:53 djm Exp $");
35 35
36#ifdef USE_PAM 36#ifdef USE_PAM
37#include <security/pam_appl.h> 37#include <security/pam_appl.h>
@@ -534,13 +534,23 @@ do_pam_account(void)
534} 534}
535 535
536void 536void
537do_pam_session(const char *user, const char *tty) 537do_pam_session(void)
538{ 538{
539 sshpam_err = pam_set_item(sshpam_handle, PAM_CONV, 539 sshpam_err = pam_set_item(sshpam_handle, PAM_CONV,
540 (const void *)&null_conv); 540 (const void *)&null_conv);
541 if (sshpam_err != PAM_SUCCESS) 541 if (sshpam_err != PAM_SUCCESS)
542 fatal("PAM: failed to set PAM_CONV: %s", 542 fatal("PAM: failed to set PAM_CONV: %s",
543 pam_strerror(sshpam_handle, sshpam_err)); 543 pam_strerror(sshpam_handle, sshpam_err));
544 sshpam_err = pam_open_session(sshpam_handle, 0);
545 if (sshpam_err != PAM_SUCCESS)
546 fatal("PAM: pam_open_session(): %s",
547 pam_strerror(sshpam_handle, sshpam_err));
548 sshpam_session_open = 1;
549}
550
551void
552do_pam_set_tty(const char *tty)
553{
544 if (tty != NULL) { 554 if (tty != NULL) {
545 debug("PAM: setting PAM_TTY to \"%s\"", tty); 555 debug("PAM: setting PAM_TTY to \"%s\"", tty);
546 sshpam_err = pam_set_item(sshpam_handle, PAM_TTY, tty); 556 sshpam_err = pam_set_item(sshpam_handle, PAM_TTY, tty);
@@ -548,11 +558,6 @@ do_pam_session(const char *user, const char *tty)
548 fatal("PAM: failed to set PAM_TTY: %s", 558 fatal("PAM: failed to set PAM_TTY: %s",
549 pam_strerror(sshpam_handle, sshpam_err)); 559 pam_strerror(sshpam_handle, sshpam_err));
550 } 560 }
551 sshpam_err = pam_open_session(sshpam_handle, 0);
552 if (sshpam_err != PAM_SUCCESS)
553 fatal("PAM: pam_open_session(): %s",
554 pam_strerror(sshpam_handle, sshpam_err));
555 sshpam_session_open = 1;
556} 561}
557 562
558void 563void