]> git.sur5r.net Git - openldap/commitdiff
ITS#6074 freeing already-freed EntryInfos...
authorHoward Chu <hyc@openldap.org>
Fri, 1 May 2009 04:36:39 +0000 (04:36 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 1 May 2009 04:36:39 +0000 (04:36 +0000)
servers/slapd/back-bdb/cache.c

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 );