]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/syncrepl.c
Fix prev commit
[openldap] / servers / slapd / syncrepl.c
index 70370e95ef074436f30696a99d3842fa7b41821f..ea3da5f929513ec5e2990d86f6fd69234fc3e842 100644 (file)
@@ -522,6 +522,7 @@ do_syncrep2(
                                }
                                if ( rc_efree && entry ) {
                                        entry_free( entry );
+                                       entry = NULL;
                                }
                                break;
 
@@ -1093,6 +1094,7 @@ syncrepl_entry(
                syncUUID->bv_val, syncUUID->bv_len );
        op->ors_filterstr.bv_val[op->ors_filterstr.bv_len] = '\0';
 
+       op->o_tag = LDAP_REQ_SEARCH;
        op->ors_scope = LDAP_SCOPE_SUBTREE;
 
        /* get syncrepl cookie of shadow replica from subentry */
@@ -1106,7 +1108,9 @@ syncrepl_entry(
 
        si->si_syncUUID_ndn.bv_val = NULL;
 
-       rc = be->be_search( op, &rs );
+       if ( limits_check( op, &rs ) == 0 ) {
+               rc = be->be_search( op, &rs );
+       }
 
        if ( op->ors_filterstr.bv_val ) {
                sl_free( op->ors_filterstr.bv_val, op->o_tmpmemctx );
@@ -1260,7 +1264,7 @@ syncrepl_entry(
 
        case LDAP_SYNC_DELETE :
                /* Already deleted */
-               ret = 1;
+               ret = 0;
                goto done;
 
        default :
@@ -1336,7 +1340,11 @@ syncrepl_del_nonpresent(
 
        op->o_nocaching = 1;
        op->o_managedsait = 0;
-       be->be_search( op, &rs );
+
+       if ( limits_check( op, &rs ) == 0 ) {
+               be->be_search( op, &rs );
+       }
+
        op->o_managedsait = 1;
        op->o_nocaching = 0;