From: Kurt Zeilenga Date: Tue, 4 Apr 2006 22:29:34 +0000 (+0000) Subject: fixes from HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_3_21~34 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=362020da1cf87fa75a4c13d3044b1499fb35d17c;p=openldap fixes from HEAD --- diff --git a/servers/slapd/back-ldbm/compare.c b/servers/slapd/back-ldbm/compare.c index ab6022809e..7100bed6ed 100644 --- a/servers/slapd/back-ldbm/compare.c +++ b/servers/slapd/back-ldbm/compare.c @@ -107,7 +107,7 @@ ldbm_back_compare( } return_results:; - cache_return_entry_r( &li->li_cache, e ); + if ( e ) cache_return_entry_r( &li->li_cache, e ); ldap_pvt_thread_rdwr_runlock(&li->li_giant_rwlock); send_ldap_result( op, rs ); diff --git a/servers/slapd/back-ldbm/idl.c b/servers/slapd/back-ldbm/idl.c index 6feeee0050..dec8ef4c9e 100644 --- a/servers/slapd/back-ldbm/idl.c +++ b/servers/slapd/back-ldbm/idl.c @@ -112,6 +112,7 @@ idl_allids( Backend *be ) idl = idl_alloc( 0 ); ID_BLOCK_NMAX(idl) = ID_BLOCK_ALLIDS_VALUE; if ( next_id_get( be, &id ) ) { + idl_free( idl ); return NULL; } ID_BLOCK_NIDS(idl) = id; diff --git a/servers/slapd/back-ldbm/modify.c b/servers/slapd/back-ldbm/modify.c index 9625682841..18557bf624 100644 --- a/servers/slapd/back-ldbm/modify.c +++ b/servers/slapd/back-ldbm/modify.c @@ -259,7 +259,7 @@ ldbm_back_modify( cache_return_entry_r( &li->li_cache, matched ); } else { rs->sr_ref = referral_rewrite( default_referral, NULL, - &op->o_req_dn, LDAP_SCOPE_DEFAULT ); + &op->o_req_dn, LDAP_SCOPE_DEFAULT ); } rs->sr_err = LDAP_REFERRAL; @@ -267,8 +267,7 @@ ldbm_back_modify( goto return_results; } - if ( !manageDSAit && is_entry_referral( e ) ) - { + if ( !manageDSAit && is_entry_referral( e ) ) { /* parent is a referral, don't allow add */ /* parent is an alias, don't allow add */ rs->sr_ref = get_entry_referrals( op, e ); @@ -295,7 +294,7 @@ ldbm_back_modify( } return_results:; - cache_return_entry_w( &li->li_cache, e ); + if( e != NULL ) cache_return_entry_w( &li->li_cache, e ); ldap_pvt_thread_rdwr_wunlock(&li->li_giant_rwlock); send_ldap_result( op, rs );