From: Howard Chu Date: Sat, 10 Sep 2011 08:12:50 +0000 (-0700) Subject: Fix - slapcat doesn't set op->o_hdr for tmpmemctx X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=16cbeb5e65197856e17dc1f1e8063596c25717d3;p=openldap Fix - slapcat doesn't set op->o_hdr for tmpmemctx --- diff --git a/servers/slapd/back-mdb/id2entry.c b/servers/slapd/back-mdb/id2entry.c index 5717c35871..4ea650aa18 100644 --- a/servers/slapd/back-mdb/id2entry.c +++ b/servers/slapd/back-mdb/id2entry.c @@ -204,10 +204,17 @@ int mdb_entry_return( ) { if ( e->e_private ) { - op->o_tmpfree( e->e_nname.bv_val, op->o_tmpmemctx ); - op->o_tmpfree( e->e_name.bv_val, op->o_tmpmemctx ); - op->o_tmpfree( e->e_attrs, op->o_tmpmemctx ); - op->o_tmpfree( e, op->o_tmpmemctx ); + if ( slapMode & SLAP_TOOL_MODE ) { + ch_free( e->e_nname.bv_val ); + ch_free( e->e_name.bv_val ); + ch_free( e->e_attrs ); + ch_free( e ); + } else { + op->o_tmpfree( e->e_nname.bv_val, op->o_tmpmemctx ); + op->o_tmpfree( e->e_name.bv_val, op->o_tmpmemctx ); + op->o_tmpfree( e->e_attrs, op->o_tmpmemctx ); + op->o_tmpfree( e, op->o_tmpmemctx ); + } } else { entry_free( e ); }