summaryrefslogtreecommitdiff
path: root/nslcd/db_pam.c
diff options
context:
space:
mode:
Diffstat (limited to 'nslcd/db_pam.c')
-rw-r--r--nslcd/db_pam.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/nslcd/db_pam.c b/nslcd/db_pam.c
index 0b101aa..08a9a4a 100644
--- a/nslcd/db_pam.c
+++ b/nslcd/db_pam.c
@@ -114,10 +114,9 @@ NSLCD_HANDLE_UID(PAM, AUTHC
entry->authz_msg[0] = '\0';
/* try authentication */
- /* TODO */
- /*entry->authc_rc = check_password(password, hash)
+ entry->authc_rc = check_password(password, NULL /* TODO */)
? NSLCD_PAM_SUCCESS
- : NSLCD_PAM_AUTH_ERR; */
+ : NSLCD_PAM_AUTH_ERR;
entry->authz_rc = entry->authc_rc;
/*myldap_get_policy_response(session, &(entry->authz_rc), &(entry->authz_msg))*/
@@ -132,7 +131,7 @@ NSLCD_HANDLE_UID(PAM, AUTHC
WRITE_STRING(fp, username);
WRITE_INT32( fp, entry->authz_rc);
WRITE_STRING(fp, entry->authz_msg);
- 0;
+ return 0;
,/* cleanup */
memset(password, 0, sizeof(password));
)
@@ -159,11 +158,10 @@ NSLCD_HANDLE(PAM, AUTHZ
,/* check */
,/* search(int *rcp) */
struct authz,
- static size_t i = 0;
struct passwd *user = NULL;
struct authz *entry = &_entry;
- for (; i < session->cnt; i++)
+ for (size_t i = 0; i < session->cnt; i++)
{
if (strcmp(username, session->users[i].pw_name)==0) {
*rcp = 0;
@@ -182,17 +180,19 @@ NSLCD_HANDLE(PAM, AUTHZ
{
entry->authz_rc = NSLCD_PAM_PERM_DENIED;
strcpy(entry->authz_msg, "LDAP authorisation check failed");
- return entry;
+ } else {
+ /* perform shadow attribute checks */
+ entry->authz_rc = check_password_age(session, username,
+ entry->authz_msg, sizeof(entry->authz_msg),
+ 0, 0);
}
- /* perform shadow attribute checks */
- entry->authz_rc = check_password_age(session, username, entry->authz_msg, sizeof(entry->authz_msg), 0, 0);
-
+ return entry;
,/* write response */
WRITE_INT32(fp, NSLCD_RESULT_BEGIN);
WRITE_INT32( fp, entry->authz_rc);
WRITE_STRING(fp, entry->authz_msg);
- 0;
+ return 0;
,/* cleanup */
)
@@ -237,7 +237,7 @@ NSLCD_HANDLE(PAM, SESS_O
,/* write */
WRITE_INT32(fp, NSLCD_RESULT_BEGIN);
WRITE_STRING(fp, sessionid);
- 0;
+ return 0;
,/* cleanup */
)
@@ -273,6 +273,6 @@ NSLCD_HANDLE(PAM, SESS_C
}
,/* write */
WRITE_INT32(fp, NSLCD_RESULT_BEGIN);
- 0;
+ return 0;
,/* cleanup */
)