]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9121 fix prev commit
authorHoward Chu <hyc@openldap.org>
Fri, 14 Feb 2020 22:32:03 +0000 (22:32 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 14 Feb 2020 22:32:03 +0000 (22:32 +0000)
Only flush entry if dynlist_prepare_entry altered it

servers/slapd/overlays/dynlist.c

index 613b568b5105c55c183e9a123c64f78b8ef92eb1..104fba3e4825af2d492f2057d0443f1b26ea744c 100644 (file)
@@ -962,10 +962,12 @@ dynlist_search2resp( Operation *op, SlapReply *rs )
                /* See if this is one of our dynamic entries */
                dyn = tavl_find( ds->ds_names, &rs->sr_entry->e_nname, dynlist_avl_cmp );
                if ( dyn ) {
+                       Entry *e = rs->sr_entry;
                        dyn->dy_seen = 1;
                        rc = dynlist_prepare_entry( op, rs, dyn->dy_dli );
                        if ( ds->ds_origfilter && test_filter( op, rs->sr_entry, ds->ds_origfilter ) != LDAP_COMPARE_TRUE ) {
-                               rs_flush_entry( op, rs, NULL );
+                               if ( e != rs->sr_entry )
+                                       rs_flush_entry( op, rs, NULL );
                                rc = LDAP_SUCCESS;
                        }
                        return rc;