From: Pierangelo Masarati Date: Mon, 28 Jun 2004 21:51:08 +0000 (+0000) Subject: fix memory usage X-Git-Tag: OPENDLAP_REL_ENG_2_2_MP~162 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c34a30a14973c548fbbfb5fb8d61807ff6cee14c;p=openldap fix memory usage --- diff --git a/servers/slapd/filterentry.c b/servers/slapd/filterentry.c index 01455e8ba5..ceba658ced 100644 --- a/servers/slapd/filterentry.c +++ b/servers/slapd/filterentry.c @@ -203,7 +203,16 @@ static int test_mra_filter( MatchingRuleAssertion *mra ) { 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 ) { /* @@ -267,7 +276,7 @@ static int test_mra_filter( /* check search access */ if ( !access_allowed( op, e, a->a_desc, &value, ACL_SEARCH, NULL ) ) { - op->o_tmpfree( value.bv_val, memctx ); + memfree( value.bv_val, memctx ); continue; } @@ -291,7 +300,7 @@ static int test_mra_filter( break; } } - op->o_tmpfree( value.bv_val, memctx ); + memfree( value.bv_val, memctx ); if ( rc != LDAP_SUCCESS ) return rc; } } @@ -348,7 +357,7 @@ static int test_mra_filter( if ( !access_allowed( op, e, ad, &value, ACL_SEARCH, NULL ) ) { - op->o_tmpfree( value.bv_val, memctx ); + memfree( value.bv_val, memctx ); continue; } } @@ -358,7 +367,7 @@ static int test_mra_filter( bv, &value, &text ); 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;