Return inappropriate matching if the syntaxes don't line up for

extensible matching
This commit is contained in:
Kurt Zeilenga 2002-03-11 16:29:01 +00:00
parent 815e2ac717
commit 9eac390e2f

View File

@ -237,14 +237,15 @@ static int test_mra_filter(
return LDAP_INSUFFICIENT_ACCESS; return LDAP_INSUFFICIENT_ACCESS;
} }
/* no matching rule was provided, use the attribute's
equality rule if it supports extensible matching. */
if( mra->ma_rule == NULL && if( mra->ma_rule == NULL &&
mra->ma_desc->ad_type->sat_equality && mra->ma_desc->ad_type->sat_equality &&
mra->ma_desc->ad_type->sat_equality->smr_usage & SLAP_MR_EXT ) mra->ma_desc->ad_type->sat_equality->smr_usage & SLAP_MR_EXT )
{ {
mra->ma_rule = mra->ma_desc->ad_type->sat_equality; mra->ma_rule = mra->ma_desc->ad_type->sat_equality;
}
if( mra->ma_rule == NULL ) { } else {
return LDAP_INAPPROPRIATE_MATCHING; return LDAP_INAPPROPRIATE_MATCHING;
} }
@ -255,7 +256,7 @@ static int test_mra_filter(
if( strcmp(mra->ma_rule->smr_syntax->ssyn_oid, if( strcmp(mra->ma_rule->smr_syntax->ssyn_oid,
mra->ma_desc->ad_type->sat_syntax->ssyn_oid) != 0) mra->ma_desc->ad_type->sat_syntax->ssyn_oid) != 0)
{ {
return LDAP_INVALID_SYNTAX; return LDAP_INAPPROPRIATE_MATCHING;
} }
for(a = attrs_find( e->e_attrs, mra->ma_desc ); for(a = attrs_find( e->e_attrs, mra->ma_desc );