diff options
Diffstat (limited to 'source/passdb/pdb_nds.c')
-rw-r--r-- | source/passdb/pdb_nds.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/source/passdb/pdb_nds.c b/source/passdb/pdb_nds.c index e2f3128fd5d..3e5f8d1b930 100644 --- a/source/passdb/pdb_nds.c +++ b/source/passdb/pdb_nds.c @@ -227,7 +227,7 @@ static int berDecodeLoginData( size_t *retDataLen, void *retData ) { - int rc=0, err = 0; + int err = 0; BerElement *replyBer = NULL; char *retOctStr = NULL; size_t retOctStrLen = 0; @@ -248,7 +248,7 @@ static int berDecodeLoginData( goto Cleanup; } - if( (rc = ber_scanf(replyBer, "{iis}", serverVersion, &err, retOctStr, &retOctStrLen)) != -1) + if(ber_scanf(replyBer, "{iis}", serverVersion, &err, retOctStr, &retOctStrLen) != -1) { if (*retDataLen >= retOctStrLen) { @@ -268,7 +268,7 @@ static int berDecodeLoginData( } else { - if( (rc = ber_scanf(replyBer, "{ii}", serverVersion, &err)) == -1) + if(ber_scanf(replyBer, "{ii}", serverVersion, &err) == -1) { if (!err) { @@ -663,7 +663,7 @@ Cleanup: int pdb_nds_get_password( struct smbldap_state *ldap_state, char *object_dn, - int *pwd_len, + size_t *pwd_len, char *pwd ) { LDAP *ld = ldap_state->ldap_struct; @@ -714,9 +714,13 @@ int pdb_nds_set_password( if (rc == LDAP_SUCCESS) { DEBUG(5,("NDS Universal Password changed for user %s\n", object_dn)); } else { + char *ld_error = NULL; + ldap_get_option(ld, LDAP_OPT_ERROR_STRING, &ld_error); + /* This will fail if Universal Password is not enabled for the user's context */ - DEBUG(3,("NDS Universal Password could not be changed for user %s: %d\n", - object_dn, rc)); + DEBUG(3,("NDS Universal Password could not be changed for user %s: %s (%s)\n", + object_dn, ldap_err2string(rc), ld_error?ld_error:"unknown")); + SAFE_FREE(ld_error); } /* Set eDirectory Password */ @@ -757,7 +761,7 @@ static NTSTATUS pdb_nds_update_login_attempts(struct pdb_methods *methods, LDAPMessage *entry = NULL; const char **attr_list; size_t pwd_len; - uchar clear_text_pw[512]; + char clear_text_pw[512]; const char *p = NULL; LDAP *ld = NULL; int ldap_port = 0; @@ -800,7 +804,7 @@ static NTSTATUS pdb_nds_update_login_attempts(struct pdb_methods *methods, got_clear_text_pw = True; } } else { - generate_random_buffer(clear_text_pw, 24); + generate_random_buffer((unsigned char *)clear_text_pw, 24); clear_text_pw[24] = '\0'; DEBUG(5,("pdb_nds_update_login_attempts: using random password %s\n", clear_text_pw)); } |