From: Howard Chu Date: Thu, 12 Jul 2007 01:41:11 +0000 (+0000) Subject: ITS#5025 from HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_3_37~10 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c934e59bc714371027c4057b1c307a715cc5a2b6;hp=f3693ad46ec3fcac10f74384e0c842a087c1e751;p=openldap ITS#5025 from HEAD --- diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c index 1ec5e13a18..7dab755b8d 100644 --- a/servers/slapd/back-ldap/search.c +++ b/servers/slapd/back-ldap/search.c @@ -330,12 +330,18 @@ 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 ); op->o_tmpfree( ent.e_name.bv_val, op->o_tmpmemctx ); @@ -383,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 {