From a773a0cc14be2d35c266fb6a470a70138f983035 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Tue, 22 Jul 2014 10:19:04 +0200 Subject: [PATCH] ITS#7894 Let back-config use backend to release entries --- servers/slapd/bconfig.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index ded66131b4..1275e1d527 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -6581,10 +6581,22 @@ int config_entry_release( Entry *e, int rw ) { + int rc = LDAP_SUCCESS; + if ( !e->e_private ) { - entry_free( e ); + BackendDB *be = op->o_bd; + CfBackInfo *cfb = be->be_private; + BackendInfo *bi = cfb->cb_db.bd_info; + + if ( bi && bi->bi_entry_release_rw ) { + op->o_bd = &cfb->cb_db; + rc = bi->bi_entry_release_rw( op, e, rw ); + op->o_bd = be; + } else { + entry_free( e ); + } } - return LDAP_SUCCESS; + return rc; } /* return LDAP_SUCCESS IFF we can retrieve the specified entry. -- 2.39.5