From 4dc23b01eef1df363701f2cabe54421472f141ef Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Sun, 3 May 2009 23:56:08 +0000 Subject: [PATCH] ITS#6074 initial patch (still not complete) --- CHANGES | 1 + servers/slapd/back-bdb/cache.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/CHANGES b/CHANGES index afe35295fb..8be3b2efb7 100644 --- 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) diff --git a/servers/slapd/back-bdb/cache.c b/servers/slapd/back-bdb/cache.c index e54408d659..02f5554e22 100644 --- a/servers/slapd/back-bdb/cache.c +++ b/servers/slapd/back-bdb/cache.c @@ -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 ); -- GitLab