summaryrefslogtreecommitdiffstats
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 3f3fbf28..bc378a32 100644
--- a/auth-pam.c
+++ b/auth-pam.c
@@ -31,7 +31,7 @@
/* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */
#include "includes.h"
-RCSID("$Id: auth-pam.c,v 1.69 2003/09/02 13:12:06 djm Exp $");
+RCSID("$Id: auth-pam.c,v 1.70 2003/09/02 13:18:53 djm Exp $");
#ifdef USE_PAM
#include <security/pam_appl.h>
@@ -534,13 +534,23 @@ do_pam_account(void)
}
void
-do_pam_session(const char *user, const char *tty)
+do_pam_session(void)
{
sshpam_err = pam_set_item(sshpam_handle, PAM_CONV,
(const void *)&null_conv);
if (sshpam_err != PAM_SUCCESS)
fatal("PAM: failed to set PAM_CONV: %s",
pam_strerror(sshpam_handle, sshpam_err));
+ sshpam_err = pam_open_session(sshpam_handle, 0);
+ if (sshpam_err != PAM_SUCCESS)
+ fatal("PAM: pam_open_session(): %s",
+ pam_strerror(sshpam_handle, sshpam_err));
+ sshpam_session_open = 1;
+}
+
+void
+do_pam_set_tty(const char *tty)
+{
if (tty != NULL) {
debug("PAM: setting PAM_TTY to \"%s\"", tty);
sshpam_err = pam_set_item(sshpam_handle, PAM_TTY, tty);
@@ -548,11 +558,6 @@ do_pam_session(const char *user, const char *tty)
fatal("PAM: failed to set PAM_TTY: %s",
pam_strerror(sshpam_handle, sshpam_err));
}
- sshpam_err = pam_open_session(sshpam_handle, 0);
- if (sshpam_err != PAM_SUCCESS)
- fatal("PAM: pam_open_session(): %s",
- pam_strerror(sshpam_handle, sshpam_err));
- sshpam_session_open = 1;
}
void