diff --git a/CHANGES b/CHANGES index 8ec6ea2a47ed24b5e4720ebf436936f93efcda36..5ed9a8f2e32196ab9d325ab77ee83e9f436835e8 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 6b579b9b07df17db40068f4eb729c15d6fcc8ac7..c0bbc40d84bff915d79dac946507b59d73c2bc12 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 db36896b44958ea3e9c223028ee30728aa2da62e..46ce69ce695195a4f48b89b2be637c6bae38074b 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 ) {