X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fsyncrepl.c;h=0c4bb5b9787cb3b075e79e6d5dace216cc25810a;hb=ef7f5f5e32e6e0f129aee7fa1626017a7dadcb48;hp=9d3d9f56ce29aa8985376a85668da75510c87fa3;hpb=a31a8ed20ea3e39ea00b3a284aa172a84cd09608;p=openldap diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index 9d3d9f56ce..0c4bb5b978 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -1845,7 +1845,12 @@ static Modifications *mods_dup( Operation *op, Modifications *modlist, int match for (i=0; isml_numvals; i++) mod->sml_nvalues[i] = modlist->sml_nvalues[i]; BER_BVZERO(&mod->sml_nvalues[i]); + } else { + mod->sml_nvalues = NULL; } + } else { + mod->sml_values = NULL; + mod->sml_nvalues = NULL; } if ( match < 0 && modlist->sml_op == LDAP_MOD_REPLACE ) mod->sml_op = LDAP_MOD_ADD; @@ -2072,8 +2077,12 @@ syncrepl_op_modify( Operation *op, SlapReply *rs ) Modifications *ml; int size, rc; SlapReply rs1 = {0}; - resolve_ctxt rx = { si, newlist }; - slap_callback cb = { NULL, syncrepl_resolve_cb, NULL, &rx }; + resolve_ctxt rx; + slap_callback cb = { NULL, syncrepl_resolve_cb, NULL, NULL }; + + rx.rx_si = si; + rx.rx_mods = newlist; + cb.sc_private = ℞ op2.o_tag = LDAP_REQ_SEARCH; op2.ors_scope = LDAP_SCOPE_SUBTREE;