From: Howard Chu Date: Sat, 10 Aug 2013 12:05:16 +0000 (-0700) Subject: ITS#7662 cleanup reader txn in mdb_entry_get() X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=64f06d5accd4cdb9b5edb773f209f0b071c9e8e0;p=openldap ITS#7662 cleanup reader txn in mdb_entry_get() --- diff --git a/servers/slapd/back-mdb/id2entry.c b/servers/slapd/back-mdb/id2entry.c index a86a25ce7e..db67db77b0 100644 --- a/servers/slapd/back-mdb/id2entry.c +++ b/servers/slapd/back-mdb/id2entry.c @@ -242,6 +242,8 @@ int mdb_entry_return( Entry *e ) { + if ( !e ) + return 0; if ( e->e_private ) { if ( op->o_hdr ) { op->o_tmpfree( e->e_nname.bv_val, op->o_tmpmemctx ); @@ -363,14 +365,7 @@ int mdb_entry_get( return_results: if( rc != LDAP_SUCCESS ) { /* free entry */ - if ( e ) - mdb_entry_return( op, e ); - - if (moi->moi_ref == 1) { - LDAP_SLIST_REMOVE( &op->o_extra, &moi->moi_oe, OpExtra, oe_next ); - mdb_txn_reset( txn ); - op->o_tmpfree( moi, op->o_tmpmemctx ); - } + mdb_entry_release( op, e, rw ); } else { *ent = e; }