mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
handle attr delete appropriately (pass test004)
This commit is contained in:
parent
677f13a846
commit
1b4401ff53
@ -3127,21 +3127,25 @@ Modifications *slapi_x_ldapmods2modifications (LDAPMod **mods)
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
mod->sml_bvalues = (BerVarray) ch_malloc( (i + 1) * sizeof(struct berval) );
|
if ( i == 0 ) {
|
||||||
|
mod->sml_bvalues = NULL;
|
||||||
/* NB: This implicitly trusts a plugin to return valid modifications. */
|
|
||||||
if ( (*modp)->mod_op & LDAP_MOD_BVALUES ) {
|
|
||||||
for( i = 0, bvp = (*modp)->mod_bvalues; bvp != NULL && *bvp != NULL; bvp++, i++ ) {
|
|
||||||
mod->sml_bvalues[i].bv_val = (*bvp)->bv_val;
|
|
||||||
mod->sml_bvalues[i].bv_len = (*bvp)->bv_len;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
for( i = 0, p = (*modp)->mod_values; p != NULL && *p != NULL; p++, i++ ) {
|
mod->sml_bvalues = (BerVarray) ch_malloc( (i + 1) * sizeof(struct berval) );
|
||||||
mod->sml_bvalues[i].bv_val = *p;
|
|
||||||
mod->sml_bvalues[i].bv_len = strlen( *p );
|
/* NB: This implicitly trusts a plugin to return valid modifications. */
|
||||||
|
if ( (*modp)->mod_op & LDAP_MOD_BVALUES ) {
|
||||||
|
for( i = 0, bvp = (*modp)->mod_bvalues; bvp != NULL && *bvp != NULL; bvp++, i++ ) {
|
||||||
|
mod->sml_bvalues[i].bv_val = (*bvp)->bv_val;
|
||||||
|
mod->sml_bvalues[i].bv_len = (*bvp)->bv_len;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for( i = 0, p = (*modp)->mod_values; p != NULL && *p != NULL; p++, i++ ) {
|
||||||
|
mod->sml_bvalues[i].bv_val = *p;
|
||||||
|
mod->sml_bvalues[i].bv_len = strlen( *p );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
mod->sml_bvalues[i].bv_val = NULL;
|
||||||
}
|
}
|
||||||
mod->sml_bvalues[i].bv_val = NULL;
|
|
||||||
|
|
||||||
*modtail = mod;
|
*modtail = mod;
|
||||||
modtail = &mod->sml_next;
|
modtail = &mod->sml_next;
|
||||||
|
Loading…
Reference in New Issue
Block a user