From: Howard Chu Date: Tue, 19 Jun 2007 20:04:36 +0000 (+0000) Subject: ITS#5025 clear sr_entry before sending search reference X-Git-Tag: OPENLDAP_REL_ENG_2_4_MP~370 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=d6ef5f3a0d4c1a17056a3aa65741c31afaa7a7cb;p=openldap ITS#5025 clear sr_entry before sending search reference --- diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c index 9f5fcf746c..732fb203e7 100644 --- a/servers/slapd/back-ldap/search.c +++ b/servers/slapd/back-ldap/search.c @@ -330,12 +330,17 @@ retry: e = ldap_first_entry( lc->lc_ld, res ); rc = ldap_build_entry( op, e, &ent, &bdn ); if ( rc == LDAP_SUCCESS ) { + ldap_get_entry_controls( lc->lc_ld, res, &rs->sr_ctrls ); rs->sr_entry = &ent; rs->sr_attrs = op->ors_attrs; rs->sr_operational_attrs = NULL; rs->sr_flags = 0; rs->sr_err = LDAP_SUCCESS; rc = rs->sr_err = send_search_entry( op, rs ); + if ( rs->sr_ctrls ) { + ldap_controls_free( rs->sr_ctrls ); + rs->sr_ctrls = NULL; + } rs->sr_entry = NULL; if ( !BER_BVISNULL( &ent.e_name ) ) { assert( ent.e_name.bv_val != bdn.bv_val ); @@ -384,6 +389,7 @@ retry: BER_BVZERO( &rs->sr_ref[ cnt ] ); /* ignore return value by now */ + rs->sr_entry = NULL; ( void )send_search_reference( op, rs ); } else {