]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
Fix mdb_entry_get
authorHoward Chu <hyc@openldap.org>
Fri, 26 Aug 2011 08:18:49 +0000 (01:18 -0700)
committerHoward Chu <hyc@openldap.org>
Fri, 26 Aug 2011 08:24:23 +0000 (01:24 -0700)
servers/slapd/back-mdb/id2entry.c

index 2fe8d1495f8e83110809ae7300993a1de09234cb..162845b79344af4118b01bf5c52b78767a155b89 100644 (file)
@@ -210,7 +210,7 @@ int mdb_entry_get(
                "=> mdb_entry_get: oc: \"%s\", at: \"%s\"\n",
                oc ? oc->soc_cname.bv_val : "(null)", at_name, 0);
 
-       rc = mdb_opinfo_get( op, mdb, 0, &moi );
+       rc = mdb_opinfo_get( op, mdb, rw == 0, &moi );
        if ( rc )
                return LDAP_OTHER;
        txn = moi->moi_txn;
@@ -391,6 +391,8 @@ mdb_opinfo_get( Operation *op, struct mdb_info *mdb, int rdonly, mdb_op_info **m
                mdb_txn_renew( moi->moi_txn );
        }
        moi->moi_ref++;
+       if ( !*moip != moi )
+               *moip = moi;
 
        return 0;
 }