]> git.sur5r.net Git - openldap/commitdiff
ITS#6045: Use copy of db when testing filter in matchops.
authorRein Tollevik <rein@openldap.org>
Fri, 3 Apr 2009 17:55:47 +0000 (17:55 +0000)
committerRein Tollevik <rein@openldap.org>
Fri, 3 Apr 2009 17:55:47 +0000 (17:55 +0000)
servers/slapd/overlays/syncprov.c

index d4bbeaab4fbc992fcc13c96bd5e97703957fa641..f2e6c3b54d3dfb76dc5a2f05ce02fc5e04345a0e 100644 (file)
@@ -1182,6 +1182,7 @@ syncprov_matchops( Operation *op, opcookie *opc, int saveit )
        {
                Operation op2;
                Opheader oh;
+               BackendDB be;
                syncmatches *sm;
                int found = 0;
 
@@ -1249,9 +1250,11 @@ syncprov_matchops( Operation *op, opcookie *opc, int saveit )
 
                if ( fc.fscope ) {
                        op2 = *ss->s_op;
+                       be = *op2.o_bd;
                        oh = *op->o_hdr;
                        oh.oh_conn = ss->s_op->o_conn;
                        oh.oh_connid = ss->s_op->o_connid;
+                       op2.o_bd = &be;
                        op2.o_hdr = &oh;
                        op2.o_extra = op->o_extra;
                        rc = test_filter( &op2, e, ss->s_op->ors_filter );