]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-mdb/compare.c
ITS#7906 better fix
[openldap] / servers / slapd / back-mdb / compare.c
index f52a3f6dae945e0b738846e264f8ad2987a18fba..3144a131e2f958b93c231983fdc2285c870efbf1 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2000-2013 The OpenLDAP Foundation.
+ * Copyright 2000-2014 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -43,7 +43,7 @@ mdb_compare( Operation *op, SlapReply *rs )
        rtxn = moi->moi_txn;
 
        /* get entry */
-       rs->sr_err = mdb_dn2entry( op, rtxn, NULL, &op->o_req_ndn, &e, 1 );
+       rs->sr_err = mdb_dn2entry( op, rtxn, NULL, &op->o_req_ndn, &e, NULL, 1 );
        switch( rs->sr_err ) {
        case MDB_NOTFOUND:
        case 0:
@@ -130,6 +130,8 @@ done:
        if ( moi == &opinfo ) {
                mdb_txn_reset( moi->moi_txn );
                LDAP_SLIST_REMOVE( &op->o_extra, &moi->moi_oe, OpExtra, oe_next );
+       } else {
+               moi->moi_ref--;
        }
        /* free entry */
        if ( e != NULL ) {