From: Howard Chu Date: Fri, 15 Sep 2006 00:43:55 +0000 (+0000) Subject: ITS#4673 fix from HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_3_28~27 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e37cf727a90f60c18aaf80a2c072a2ded91d01c5;p=openldap ITS#4673 fix from HEAD --- diff --git a/servers/slapd/overlays/translucent.c b/servers/slapd/overlays/translucent.c index cc1357a57b..4fae3d92bf 100644 --- a/servers/slapd/overlays/translucent.c +++ b/servers/slapd/overlays/translucent.c @@ -296,11 +296,10 @@ static int translucent_modify(Operation *op, SlapReply *rs) { m->sml_desc->ad_cname.bv_val, 0, 0); for(mm = op->orm_modlist; mm->sml_next != m; mm = mm->sml_next); mm->sml_next = m->sml_next; - mm = m; - m = m->sml_next; - mm->sml_next = NULL; /* hack */ - slap_mods_free(mm, 1); - if(m) continue; + m->sml_next = NULL; + slap_mods_free(m, 1); + m = mm; + continue; } m->sml_op = LDAP_MOD_ADD; } @@ -360,7 +359,7 @@ release: a = ch_calloc(1, sizeof(Attribute)); a->a_desc = m->sml_desc; a->a_vals = m->sml_values; - a->a_nvals = m->sml_nvalues; + a->a_nvals = m->sml_nvalues ? m->sml_nvalues : a->a_vals; a->a_next = ax; ax = a; }