]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/pcache.c
check for NULL backend (ITS#6490)
[openldap] / servers / slapd / overlays / pcache.c
index 1b75814fba5899415d76003168e60a06f72556c7..78c6bed9aecb4866b42be57b2232ce3b064fda41 100644 (file)
@@ -3029,8 +3029,10 @@ pcache_op_search(
                                        slap_callback **scp;
                                        for ( scp = &op->o_callback; *scp != NULL;
                                                scp = &(*scp)->sc_next ) {
-                                               if ( (*scp)->sc_next == &cb )
+                                               if ( (*scp)->sc_next == &cb ) {
                                                        *scp = cb.sc_next;
+                                                       break;
+                                               }
                                        }
                                }
                        }
@@ -5109,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 ) {