]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/mra.c
Fix ITS#3424
[openldap] / servers / slapd / mra.c
index 7d43bba1f0e942ba87fb845f94d8a1f6326920c3..688786e313d2e15c94948a79f7ce774b08063bb5 100644 (file)
@@ -29,6 +29,12 @@ mra_free(
        MatchingRuleAssertion *mra,
        int     freeit )
 {
+#ifdef LDAP_COMP_MATCH
+       /* free component assertion */
+       if ( mra->ma_rule->smr_usage & SLAP_MR_COMPONENT ) {
+               component_free( mra->ma_cf );
+       }
+#endif
        /* op->o_tmpfree( mra->ma_value.bv_val, op->o_tmpmemctx ); */
        ch_free( mra->ma_value.bv_val );
        if ( freeit ) op->o_tmpfree( (char *) mra, op->o_tmpmemctx );
@@ -186,7 +192,6 @@ get_mra(
        /* Matching Rule for Component Matching */
        Debug( LDAP_DEBUG_FILTER, "matchingrule %s\n",
                ma.ma_rule->smr_mrule.mr_oid, 0, 0);
-
        if( ma.ma_rule && ma.ma_rule->smr_usage & SLAP_MR_COMPONENT ) {
                rc = get_comp_filter( op, &ma.ma_value, &ma.ma_cf, text );
                if ( rc != LDAP_SUCCESS ) return rc;