]> git.sur5r.net Git - openldap/commitdiff
Return inappropriate matching if the syntaxes don't line up for
authorKurt Zeilenga <kurt@openldap.org>
Mon, 11 Mar 2002 16:29:01 +0000 (16:29 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Mon, 11 Mar 2002 16:29:01 +0000 (16:29 +0000)
extensible matching

servers/slapd/filterentry.c

index cbd9c1438be6d7e8db0465cf96a4302c892e40df..706e774841d2b27352eb4c35a18d386bf386e64b 100644 (file)
@@ -237,14 +237,15 @@ static int test_mra_filter(
                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 && 
                mra->ma_desc->ad_type->sat_equality &&
                mra->ma_desc->ad_type->sat_equality->smr_usage & SLAP_MR_EXT )
        {
                mra->ma_rule = mra->ma_desc->ad_type->sat_equality;
-       }
 
-       if( mra->ma_rule == NULL ) {
+       } else {
                return LDAP_INAPPROPRIATE_MATCHING;
        }
 
@@ -255,7 +256,7 @@ static int test_mra_filter(
        if( strcmp(mra->ma_rule->smr_syntax->ssyn_oid,
                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 );