continue;
rc = ldap_search_s(ldap_state->ldap_struct, base, scope,
- filter, (char **)attrs, attrsonly, res);
+ utf8_filter, (char **)attrs, attrsonly, res);
}
if (rc == LDAP_SERVER_DOWN) {
if ((rc = ldapsam_retry_open(ldap_state,&attempts)) != LDAP_SUCCESS)
continue;
- rc = ldap_modify_s(ldap_state->ldap_struct, dn, attrs);
+ rc = ldap_modify_s(ldap_state->ldap_struct, utf8_dn, attrs);
}
if (rc == LDAP_SERVER_DOWN) {
if ((rc = ldapsam_retry_open(ldap_state,&attempts)) != LDAP_SUCCESS)
continue;
- rc = ldap_add_s(ldap_state->ldap_struct, dn, attrs);
+ rc = ldap_add_s(ldap_state->ldap_struct, utf8_dn, attrs);
}
if (rc == LDAP_SERVER_DOWN) {
if ((rc = ldapsam_retry_open(ldap_state,&attempts)) != LDAP_SUCCESS)
continue;
- rc = ldap_delete_s(ldap_state->ldap_struct, dn);
+ rc = ldap_delete_s(ldap_state->ldap_struct, utf8_dn);
}
if (rc == LDAP_SERVER_DOWN) {
char *retoid;
struct berval *retdata;
char *utf8_password;
+ char *utf8_dn;
if (push_utf8_allocate(&utf8_password, pdb_get_plaintext_passwd(newpwd)) == (size_t)-1) {
return NT_STATUS_NO_MEMORY;
}
+ if (push_utf8_allocate(&utf8_dn, dn) == (size_t)-1) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
if ((ber = ber_alloc_t(LBER_USE_DER))==NULL) {
DEBUG(0,("ber_alloc_t returns NULL\n"));
SAFE_FREE(utf8_password);
}
ber_printf (ber, "{");
- ber_printf (ber, "ts", LDAP_TAG_EXOP_X_MODIFY_PASSWD_ID,dn);
+ ber_printf (ber, "ts", LDAP_TAG_EXOP_X_MODIFY_PASSWD_ID, utf8_dn);
ber_printf (ber, "ts", LDAP_TAG_EXOP_X_MODIFY_PASSWD_NEW, utf8_password);
ber_printf (ber, "N}");
if ((rc = ber_flatten (ber, &bv))<0) {
DEBUG(0,("ber_flatten returns a value <0\n"));
ber_free(ber,1);
+ SAFE_FREE(utf8_dn);
SAFE_FREE(utf8_password);
return NT_STATUS_UNSUCCESSFUL;
}
+ SAFE_FREE(utf8_dn);
SAFE_FREE(utf8_password);
ber_free(ber, 1);