]> git.sur5r.net Git - openldap/commitdiff
ITS#5332
authorQuanah Gibson-Mount <quanah@openldap.org>
Tue, 12 Feb 2008 01:28:26 +0000 (01:28 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Tue, 12 Feb 2008 01:28:26 +0000 (01:28 +0000)
CHANGES
servers/slapd/back-bdb/cache.c

diff --git a/CHANGES b/CHANGES
index 577be4409970891757c22b21d246bb421d0f9852..dc4027a8f82335a931a64f31dd7387dffd6d9bc5 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -28,6 +28,7 @@ OpenLDAP 2.4.8 Engineering
        Fixed slapd-bdb crash with modrdn (ITS#5358)
        Fixed slapd-bdb segv with bdb4.6 (ITS#5322)
        Fixed slapd-bdb modrdn to same dn (ITS#5319)
+       Fixed slapd-bdb MMR (ITS#5332)
        Added slapd-bdb/slapd-hdb DB encryption (ITS#5359)
        Fixed slapd-ldif delete (ITS#5265)
        Fixed slapd-meta link to slapd-ldap (ITS#5355)
index 3156667d40a8947dc8855fd02557992abc67c330..9c0ad339501983fab16adf8c9a1c4e317b928ac4 100644 (file)
@@ -251,15 +251,17 @@ bdb_cache_return_entry_rw( struct bdb_info *bdb, Entry *e,
        EntryInfo *ei;
        int free = 0;
 
-       bdb_cache_entry_db_unlock( bdb, lock );
        ei = e->e_private;
-       bdb_cache_entryinfo_lock( ei );
-       if ( ei->bei_state & CACHE_ENTRY_NOT_CACHED ) {
-               ei->bei_e = NULL;
-               ei->bei_state ^= CACHE_ENTRY_NOT_CACHED;
-               free = 1;
+       bdb_cache_entry_db_unlock( bdb, lock );
+       if ( ei ) {
+               bdb_cache_entryinfo_lock( ei );
+               if ( ei->bei_state & CACHE_ENTRY_NOT_CACHED ) {
+                       ei->bei_e = NULL;
+                       ei->bei_state ^= CACHE_ENTRY_NOT_CACHED;
+                       free = 1;
+               }
+               bdb_cache_entryinfo_unlock( ei );
        }
-       bdb_cache_entryinfo_unlock( ei );
        if ( free ) {
                e->e_private = NULL;
                bdb_entry_return( e );