)
{
int rc;
+ ber_tag_t rtag;
struct berval type, value;
AttributeAssertion *aa;
- rc = ber_scanf( ber, "{oo}", &type, &value );
+ rtag = ber_scanf( ber, "{mm}", &type, &value );
- if( rc == LBER_ERROR ) {
+ if( rtag == LBER_ERROR ) {
#ifdef NEW_LOGGING
LDAP_LOG(( "filter", LDAP_LEVEL_ERR,
"get_ava: ber_scanf failure\n" ));
aa->aa_value.bv_val = NULL;
rc = slap_bv2ad( &type, &aa->aa_desc, text );
- ch_free( type.bv_val );
if( rc != LDAP_SUCCESS ) {
- ch_free( value.bv_val );
ch_free( aa );
return rc;
}
- rc = value_normalize( aa->aa_desc, usage, &value, &aa->aa_value, text );
- ch_free( value.bv_val );
+ rc = value_validate_normalize( aa->aa_desc, usage,
+ &value, &aa->aa_value, text );
if( rc != LDAP_SUCCESS ) {
ch_free( aa );