assert( ad != NULL );
assert( *ad == NULL ); /* temporary */
- assert( *text != NULL );
if( bv == NULL || bv->bv_len == 0 ) {
*text = "empty attribute description";
/* get the attrs */
for ( tag = ber_first_element( ber, &len, &last ); tag != LBER_DEFAULT;
- tag = ber_next_element( ber, &len, last ) ) {
+ tag = ber_next_element( ber, &len, last ) )
+ {
#ifdef SLAPD_SCHEMA_NOT_COMPAT
LDAPModList *mod = (LDAPModList *) ch_malloc( sizeof(LDAPModList) );
#else
}
#ifdef SLAPD_SCHEMA_NOT_COMPAT
- (*modtail)->ml_next = mod;
+ *modtail = mod;
modtail = &mod->ml_next;
#else
attr_merge( e, mod->ml_type, mod->ml_bvalues );
slap_syntax_validate_func *validate =
ad->ad_type->sat_syntax->ssyn_validate;
+ if( !validate ) {
+ slap_mods_free( mod );
+ *text = "no validator for syntax";
+ return LDAP_INVALID_SYNTAX;
+ }
+
/*
* check that each value is valid per syntax
*/