]> git.sur5r.net Git - openldap/commitdiff
ITS#6088 entryinfo cleanup
authorHoward Chu <hyc@openldap.org>
Sun, 3 May 2009 00:30:20 +0000 (00:30 +0000)
committerHoward Chu <hyc@openldap.org>
Sun, 3 May 2009 00:30:20 +0000 (00:30 +0000)
servers/slapd/back-bdb/cache.c

index 02f5554e22988c27b0371fce34e4c2715749739b..1137d32ce89b16e730fca77ad103af1a26f3ede7 100644 (file)
@@ -64,6 +64,7 @@ bdb_cache_entryinfo_new( Cache *cache )
                        ei = cache->c_eifree;
                        cache->c_eifree = ei->bei_lrunext;
                        ei->bei_finders = 0;
+                       ei->bei_lrunext = NULL;
                }
                ldap_pvt_thread_mutex_unlock( &cache->c_eifree_mutex );
        }
@@ -81,10 +82,10 @@ static void
 bdb_cache_entryinfo_free( Cache *cache, EntryInfo *ei )
 {
        free( ei->bei_nrdn.bv_val );
-       ei->bei_nrdn.bv_val = NULL;
+       BER_BVZERO( &ei->bei_nrdn );
 #ifdef BDB_HIER
        free( ei->bei_rdn.bv_val );
-       ei->bei_rdn.bv_val = NULL;
+       BER_BVZERO( &ei->bei_rdn.bv_val );
        ei->bei_modrdns = 0;
        ei->bei_ckids = 0;
        ei->bei_dkids = 0;
@@ -1358,8 +1359,8 @@ bdb_cache_delete_cleanup(
                ei->bei_e = NULL;
        }
 
-       bdb_cache_entryinfo_free( cache, ei );
        bdb_cache_entryinfo_unlock( ei );
+       bdb_cache_entryinfo_free( cache, ei );
 }
 
 static int