mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-23 08:09:34 -05:00
fix memory usage
This commit is contained in:
parent
9a2b8f9d40
commit
c34a30a149
1 changed files with 14 additions and 5 deletions
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue