From: Pierangelo Masarati Date: Mon, 30 May 2005 12:37:24 +0000 (+0000) Subject: don't leave dangling pointers; pass entry when sending referrals X-Git-Tag: OPENLDAP_AC_BP~589 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=36c5fe19919ecbd63d2b9b42a5ac97ebace559ff;p=openldap don't leave dangling pointers; pass entry when sending referrals --- diff --git a/servers/slapd/back-ldif/ldif.c b/servers/slapd/back-ldif/ldif.c index 1f3cdf60c8..a59fe576eb 100644 --- a/servers/slapd/back-ldif/ldif.c +++ b/servers/slapd/back-ldif/ldif.c @@ -332,11 +332,12 @@ static int r_enum_tree(enumCookie *ck, struct berval *path, ck->op->oq_search.rs_scope == LDAP_SCOPE_ONELEVEL ? LDAP_SCOPE_BASE : LDAP_SCOPE_SUBTREE ); + ck->rs->sr_entry = e; rc = send_search_reference( ck->op, ck->rs ); - ber_bvarray_free( ck->rs->sr_ref ); ber_bvarray_free( erefs ); ck->rs->sr_ref = NULL; + ck->rs->sr_entry = NULL; } else if ( test_filter( ck->op, e, ck->op->ors_filter ) == LDAP_COMPARE_TRUE ) { @@ -344,6 +345,7 @@ static int r_enum_tree(enumCookie *ck, struct berval *path, ck->rs->sr_attrs = ck->op->ors_attrs; ck->rs->sr_flags = REP_ENTRY_MODIFIABLE; rc = send_search_entry(ck->op, ck->rs); + ck->rs->sr_entry = NULL; } fd = 1; if ( rc )