]> git.sur5r.net Git - openldap/commitdiff
ITS#7915 fix mdb_entry_release
authorHoward Chu <hyc@openldap.org>
Mon, 4 Aug 2014 20:35:02 +0000 (13:35 -0700)
committerQuanah Gibson-Mount <quanah@openldap.org>
Mon, 4 Aug 2014 20:57:54 +0000 (15:57 -0500)
In server mode, make sure the entry was actually ours

servers/slapd/back-mdb/id2entry.c

index c5530091c0aeab7868e2966e3b7580b994fb8a27..375f445cc777fb13c741248a4754c7bf9f1acb9b 100644 (file)
@@ -272,11 +272,11 @@ int mdb_entry_release(
        /* slapMode : SLAP_SERVER_MODE, SLAP_TOOL_MODE,
                        SLAP_TRUNCATE_MODE, SLAP_UNDEFINED_MODE */
  
-       mdb_entry_return( op, e );
        if ( slapMode & SLAP_SERVER_MODE ) {
                OpExtra *oex;
                LDAP_SLIST_FOREACH( oex, &op->o_extra, oe_next ) {
                        if ( oex->oe_key == mdb ) {
+                               mdb_entry_return( op, e );
                                moi = (mdb_op_info *)oex;
                                /* If it was setup by entry_get we should probably free it */
                                if ( moi->moi_flag & MOI_FREEIT ) {
@@ -291,6 +291,8 @@ int mdb_entry_release(
                                break;
                        }
                }
+       } else {
+               mdb_entry_return( op, e );
        }
  
        return 0;