]> git.sur5r.net Git - openldap/commitdiff
ITS#6074 initial patch (still not complete)
authorQuanah Gibson-Mount <quanah@openldap.org>
Sun, 3 May 2009 23:56:08 +0000 (23:56 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Sun, 3 May 2009 23:56:08 +0000 (23:56 +0000)
CHANGES
servers/slapd/back-bdb/cache.c

diff --git a/CHANGES b/CHANGES
index afe35295fb84874dd1ff4d12439bd951ff40b31e..8be3b2efb76e8353e7d5eaf5194c15b6b9444eca 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -12,6 +12,7 @@ OpenLDAP 2.4.17 Engineering
        Fixed slapd normalization of updated schema attributes (ITS#5540)
        Fixed slapd pagedresults stacked control with overlays (ITS#6056)
        Fixed slapd sockets usage on windows (ITS#6039)
+       Fixed slapd-bdb freeing of already freed entries (ITS#6074)
        Added slapo-rwm rwm-drop-unrequested-attrs config option (ITS#6057)
        Fixed slapo-rwm dn passing (ITS#6070)
        Fixed slapo-rwm entry free (ITS#6058)
index e54408d65965515fb1edfc7cc499b294d8cf26f0..02f5554e22988c27b0371fce34e4c2715749739b 100644 (file)
@@ -1345,6 +1345,9 @@ bdb_cache_delete_cleanup(
 {
        /* Enter with ei locked */
 
+       /* already freed? */
+       if ( !ei->bei_parent ) return;
+
        if ( ei->bei_e ) {
                ei->bei_e->e_private = NULL;
 #ifdef SLAP_ZONE_ALLOC
@@ -1368,6 +1371,10 @@ bdb_cache_delete_internal(
        int rc = 0;     /* return code */
        int decr_leaf = 0;
 
+       /* already freed? */
+       if ( !e->bei_parent )
+               return -1;
+
        /* Lock the parent's kids tree */
        bdb_cache_entryinfo_lock( e->bei_parent );