]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/dynlist.c
remove REP_ENTRY_MUSTRELEASE when copying (ITS#6423)
[openldap] / servers / slapd / overlays / dynlist.c
index 457a5200471815892d147571de4657b3345227ed..1b83f9f41d01e219c63057058138d0d88eb2373e 100644 (file)
@@ -170,7 +170,7 @@ dynlist_is_dynlist_next( Operation *op, SlapReply *rs, dynlist_info_t *old_dli )
 }
 
 static int
-dynlist_make_filter( Operation *op, struct berval *oldf, struct berval *newf )
+dynlist_make_filter( Operation *op, Entry *e, const char *url, struct berval *oldf, struct berval *newf )
 {
        slap_overinst   *on = (slap_overinst *)op->o_bd->bd_info;
        dynlist_info_t  *dli = (dynlist_info_t *)on->on_bi.bi_private;
@@ -184,6 +184,8 @@ dynlist_make_filter( Operation *op, struct berval *oldf, struct berval *newf )
        assert( !BER_BVISEMPTY( oldf ) );
 
        if ( oldf->bv_val[0] != '(' ) {
+               Debug( LDAP_DEBUG_ANY, "%s: dynlist, DN=\"%s\": missing brackets in URI=\"%s\" filter\n",
+                       op->o_log_prefix, e->e_name.bv_val, url );
                needBrackets = 2;
        }
 
@@ -463,6 +465,7 @@ dynlist_prepare_entry( Operation *op, SlapReply *rs, dynlist_info_t *dli )
        if ( !( rs->sr_flags & REP_ENTRY_MODIFIABLE ) ) {
                e = entry_dup( rs->sr_entry );
                e_flags |= ( REP_ENTRY_MODIFIABLE | REP_ENTRY_MUSTBEFREED );
+               e_flags &= ~REP_ENTRY_MUSTRELEASE;
        } else {
                e = rs->sr_entry;
        }
@@ -618,7 +621,7 @@ dynlist_prepare_entry( Operation *op, SlapReply *rs, dynlist_info_t *dli )
                } else {
                        struct berval   flt;
                        ber_str2bv( lud->lud_filter, 0, 0, &flt );
-                       if ( dynlist_make_filter( op, &flt, &o.ors_filterstr ) ) {
+                       if ( dynlist_make_filter( op, rs->sr_entry, url->bv_val, &flt, &o.ors_filterstr ) ) {
                                /* error */
                                goto cleanup;
                        }