fix memory usage

This commit is contained in:
Pierangelo Masarati 2004-06-28 21:51:08 +00:00
parent 9a2b8f9d40
commit c34a30a149

View file

@ -203,7 +203,16 @@ static int test_mra_filter(
MatchingRuleAssertion *mra ) MatchingRuleAssertion *mra )
{ {
Attribute *a; Attribute *a;
void *memctx = op ? op->o_tmpmemctx : NULL; void *memctx;
BER_MEMFREE_FN *memfree;
if ( op == NULL ) {
memctx = NULL;
memfree = slap_sl_free;
} else {
memctx = op->o_tmpmemctx;
memfree = op->o_tmpfree;
}
if ( mra->ma_desc ) { if ( mra->ma_desc ) {
/* /*
@ -267,7 +276,7 @@ static int test_mra_filter(
/* check search access */ /* check search access */
if ( !access_allowed( op, e, if ( !access_allowed( op, e,
a->a_desc, &value, ACL_SEARCH, NULL ) ) { a->a_desc, &value, ACL_SEARCH, NULL ) ) {
op->o_tmpfree( value.bv_val, memctx ); memfree( value.bv_val, memctx );
continue; continue;
} }
@ -291,7 +300,7 @@ static int test_mra_filter(
break; break;
} }
} }
op->o_tmpfree( value.bv_val, memctx ); memfree( value.bv_val, memctx );
if ( rc != LDAP_SUCCESS ) return rc; if ( rc != LDAP_SUCCESS ) return rc;
} }
} }
@ -348,7 +357,7 @@ static int test_mra_filter(
if ( !access_allowed( op, e, if ( !access_allowed( op, e,
ad, &value, ACL_SEARCH, NULL ) ) ad, &value, ACL_SEARCH, NULL ) )
{ {
op->o_tmpfree( value.bv_val, memctx ); memfree( value.bv_val, memctx );
continue; continue;
} }
} }
@ -358,7 +367,7 @@ static int test_mra_filter(
bv, &value, &text ); bv, &value, &text );
if ( value.bv_val != mra->ma_value.bv_val ) { if ( value.bv_val != mra->ma_value.bv_val ) {
op->o_tmpfree( value.bv_val, memctx ); memfree( value.bv_val, memctx );
} }
if ( rc == LDAP_SUCCESS && ret == 0 ) rc = LDAP_COMPARE_TRUE; if ( rc == LDAP_SUCCESS && ret == 0 ) rc = LDAP_COMPARE_TRUE;