]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldbm/compare.c
Notices and acknowledgements
[openldap] / servers / slapd / back-ldbm / compare.c
index 0adf7028b1e5fabdc76a10398014c4fdc77bc67e..0c41f24477997a4c9a0c9804c1869c6e9d4f2655 100644 (file)
@@ -50,7 +50,8 @@ ldbm_back_compare(
 
                if ( rs->sr_ref ) ber_bvarray_free( rs->sr_ref );
                free( (char *)rs->sr_matched );
-
+               rs->sr_ref = NULL;
+               rs->sr_matched = NULL;
                return( 1 );
        }
 
@@ -72,7 +73,8 @@ ldbm_back_compare(
                send_ldap_result( op, rs );
 
                if ( rs->sr_ref ) ber_bvarray_free( rs->sr_ref );
-
+               rs->sr_ref = NULL;
+               rs->sr_matched = NULL;
                rs->sr_err = 1;
                goto return_results;
        }
@@ -94,14 +96,11 @@ ldbm_back_compare(
        {
                rs->sr_err = LDAP_COMPARE_FALSE;
 
-#ifdef SLAP_NVALUES
                if ( value_find_ex( op->oq_compare.rs_ava->aa_desc,
                        SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH |
                                SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH,
-                       a->a_nvals, &op->oq_compare.rs_ava->aa_value ) == 0 )
-#else
-               if ( value_find( op->oq_compare.rs_ava->aa_desc, a->a_vals, &op->oq_compare.rs_ava->aa_value ) == 0 )
-#endif
+                       a->a_nvals, &op->oq_compare.rs_ava->aa_value,
+                       op->o_tmpmemctx ) == 0 )
                {
                        rs->sr_err = LDAP_COMPARE_TRUE;
                        break;