From 528c64d47c11016bc67c441ad5723fe42179a192 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Thu, 15 Apr 2010 21:59:56 +0000 Subject: [PATCH] ITS#6490 --- CHANGES | 2 ++ servers/slapd/overlays/dds.c | 6 ++++++ servers/slapd/overlays/pcache.c | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/CHANGES b/CHANGES index 8ec6ea2a47..5ed9a8f2e3 100644 --- a/CHANGES +++ b/CHANGES @@ -14,8 +14,10 @@ OpenLDAP 2.4.22 Engineering Fixed slapd syncrepl for unknown attrs and delta-sync (ITS#6473) Fixed slapd-bdb contextCSN updates from updatedn (ITS#6469) Fixed slapo-collect REP_ENTRY flag handling (ITS#5340,ITS#6423) + Fixed slapo-dds with NULL backend (ITS#6490) Fixed slapo-dynlist REP_ENTRY flag handling (ITS#5340,ITS#6423) Fixed slapo-pcache to release its own entries (ITS#6484) + Fixed slapo-pcache with NULL backend (ITS#6490) Fixed slapo-rwm entry release handling (ITS#6484) Fixed slapo-rwm olcRwmMap handling (ITS#6436) Fixed slapo-rwm REP_ENTRY flag handling (ITS#5340,ITS#6423) diff --git a/servers/slapd/overlays/dds.c b/servers/slapd/overlays/dds.c index 6b579b9b07..c0bbc40d84 100644 --- a/servers/slapd/overlays/dds.c +++ b/servers/slapd/overlays/dds.c @@ -1821,6 +1821,12 @@ slap_exop_refresh( op->o_req_dn = op->o_req_ndn; op->o_bd = select_backend( &op->o_req_ndn, 0 ); + if ( op->o_bd == NULL ) { + send_ldap_error( op, rs, LDAP_NO_SUCH_OBJECT, + "no global superior knowledge" ); + goto done; + } + if ( !SLAP_DYNAMIC( op->o_bd ) ) { send_ldap_error( op, rs, LDAP_UNAVAILABLE_CRITICAL_EXTENSION, "backend does not support dynamic directory services" ); diff --git a/servers/slapd/overlays/pcache.c b/servers/slapd/overlays/pcache.c index db36896b44..46ce69ce69 100644 --- a/servers/slapd/overlays/pcache.c +++ b/servers/slapd/overlays/pcache.c @@ -5111,6 +5111,10 @@ pcache_exop_query_delete( op->o_req_dn = op->o_req_ndn; op->o_bd = select_backend( &op->o_req_ndn, 0 ); + if ( op->o_bd == NULL ) { + send_ldap_error( op, rs, LDAP_NO_SUCH_OBJECT, + "no global superior knowledge" ); + } rs->sr_err = backend_check_restrictions( op, rs, (struct berval *)&pcache_exop_QUERY_DELETE ); if ( rs->sr_err != LDAP_SUCCESS ) { -- GitLab