summaryrefslogtreecommitdiff
path: root/source/passdb/pdb_nds.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2005-09-22 01:21:12 +0000
committerGerald Carter <jerry@samba.org>2005-09-22 01:21:12 +0000
commitd826a6a9b1bb26565fe75781dddac782a4757e90 (patch)
treea0856da45373abedef604417f83489148dcf334e /source/passdb/pdb_nds.c
parent7a42b3de7aea0f8afefefd90db7fe8f255163589 (diff)
downloadsamba-d826a6a9b1bb26565fe75781dddac782a4757e90.tar.gz
r10400: commit merge patch from jrasamba-3.0.20rc2
libsmbsharemodes added (Jermey). Linux core dump fix from (James Peach). Linux quota fixes from (metze). krb5 memory leaks from (gd). Creds fix for winbindd and server (Jeremy). winbindd recursion fix (Jeremy). winbindd builtin fix (gd) universal pw error fixes (novell). dir logic fix (Jeremy). hide dotfiles fix (Jeremy) no write to read-only shares fix (?). exclusive open fix (vl). tdb reopen fix (tridge) status display open files fix (Jeremy) posix acl null pointer crash (?) posix acl mem leak (?) mount.cifs flag fix (sfrench) smbspool error message fix (?) libsmbclient comment fix (?). 64-bit error message fixes (Jeremy).
Diffstat (limited to 'source/passdb/pdb_nds.c')
-rw-r--r--source/passdb/pdb_nds.c20
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));
}