From dae494e45d2f222595fdbb86baee23931f50c7b7 Mon Sep 17 00:00:00 2001 From: Hallvard Furuseth Date: Mon, 5 Apr 1999 18:01:11 +0000 Subject: [PATCH] Delay free(e.e_ndn) in cache_find_entry_dn2id() to after "goto try_again" --- servers/slapd/back-ldbm/cache.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/servers/slapd/back-ldbm/cache.c b/servers/slapd/back-ldbm/cache.c index 6fb33306b6..5386735fcc 100644 --- a/servers/slapd/back-ldbm/cache.c +++ b/servers/slapd/back-ldbm/cache.c @@ -445,7 +445,6 @@ try_again: * we do not need to lock the entry if we only * check the state, refcnt, LRU, and id. */ - free(e.e_ndn); #ifdef LDAP_DEBUG assert( ep->e_private ); @@ -477,11 +476,8 @@ try_again: /* save id */ id = ep->e_id; - - /* free cache mutex */ - ldap_pvt_thread_mutex_unlock( &cache->c_mutex ); - - return( id ); + } else { + id = NOID; } free(e.e_ndn); @@ -489,7 +485,7 @@ try_again: /* free cache mutex */ ldap_pvt_thread_mutex_unlock( &cache->c_mutex ); - return( NOID ); + return( id ); } /* -- 2.39.5