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-Tag: OPENLDAP_REL_ENG_2_4_27~131 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=058be29bdf3a50ce0c1dbee3555736bcd249c6b5;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 ); }