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;
}
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;
}