summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2010-05-13 16:31:52 +0000
committerArthur de Jong <arthur@arthurdejong.org>2010-05-13 16:31:52 +0000
commit4967079c33f5f32489affd2d6fb790e8842e1b05 (patch)
tree02738e1e9d33a43a52106b7a1e1084e45246e19e
parentf6f4a45e817ead6779af00109a17dbd4935d535d (diff)
also use PAM username instead of one from context for session open and close
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1103 ef36b2f9-881f-0410-afb5-c4e39611909c
-rw-r--r--pam/pam.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/pam/pam.c b/pam/pam.c
index 70ef12f..bef0d71 100644
--- a/pam/pam.c
+++ b/pam/pam.c
@@ -249,13 +249,14 @@ static int nslcd_request_authz(struct pld_ctx *ctx,const char *username,
}
/* do a session nslcd request (open or close) */
-static int nslcd_request_sess(struct pld_ctx *ctx,int action,const char *service,
+static int nslcd_request_sess(struct pld_ctx *ctx,int action,
+ const char *username,const char *service,
const char *tty, const char *rhost,
const char *ruser)
{
PAM_REQUEST(action,
/* write the request parameters */
- WRITE_STRING(fp,ctx->user);
+ WRITE_STRING(fp,username);
WRITE_STRING(fp,ctx->dn);
WRITE_STRING(fp,service);
WRITE_STRING(fp,tty);
@@ -483,7 +484,7 @@ static int pam_sm_session(pam_handle_t *pamh,int flags,int argc,
pam_get_item(pamh,PAM_RHOST,(const void **)&rhost);
pam_get_item(pamh,PAM_RUSER,(const void **)&ruser);
/* do the nslcd request */
- rc=nslcd_request_sess(ctx,action,service,tty,rhost,ruser);
+ rc=nslcd_request_sess(ctx,action,username,service,tty,rhost,ruser);
if ((rc==PAM_AUTHINFO_UNAVAIL)&&cfg.ignore_authinfo_unavail)
rc=PAM_IGNORE;
else if ((rc==PAM_USER_UNKNOWN)&&cfg.ignore_unknown_user)