entry_free( entry );
for ( ml = modlist; ml != NULL; ml = mlnext ) {
mlnext = ml->sml_next;
- free( ml );
+ ber_memfree( ml );
}
break;
LDAPControl** rctrls = NULL;
BerElement* ctrl_ber;
+ ber_tag_t tag;
+
*modlist = NULL;
if ( ldap_msgtype( msg ) != LDAP_RES_SEARCH_ENTRY ) {
e->e_attrs = NULL;
- for ( rc = ldap_get_attribute_ber( ld, msg, ber, &tmp.sml_type, &tmp.sml_bvalues);
- rc == LDAP_SUCCESS;
- rc = ldap_get_attribute_ber( ld, msg, ber, &tmp.sml_type, &tmp.sml_bvalues))
- {
+ while ( ber_remaining( ber ) ) {
+ tag = ber_scanf( ber, "{mW}", &tmp.sml_type, &tmp.sml_values );
+
+ if ( tag == LBER_ERROR ) break;
if ( tmp.sml_type.bv_val == NULL ) break;
mod = (Modifications *) ch_malloc( sizeof( Modifications ));
return e;
}
-int
+int
syncuuid_cmp( const void* v_uuid1, const void* v_uuid2 )
{
const struct berval *uuid1 = v_uuid1;