diff options
Diffstat (limited to 'nslcd/db_pam.c')
-rw-r--r-- | nslcd/db_pam.c | 26 |
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 */ ) |