mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-30 19:49:35 -05:00
Fix replacing of all values with an empty value.
This commit is contained in:
parent
8697aa4b8d
commit
999b3dad7b
2 changed files with 33 additions and 6 deletions
|
|
@ -220,7 +220,7 @@ do_modify(
|
|||
#ifdef LDAP_DEBUG
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_DETAIL1,
|
||||
"do_modify: modifications:\n" ));
|
||||
"do_modify: modifications:\n" ));
|
||||
#else
|
||||
Debug( LDAP_DEBUG_ARGS, "modifications:\n", 0, 0, 0 );
|
||||
#endif
|
||||
|
|
@ -231,13 +231,41 @@ do_modify(
|
|||
"\t%s: %s\n", tmp->ml_op == LDAP_MOD_ADD ?
|
||||
"add" : (tmp->ml_op == LDAP_MOD_DELETE ?
|
||||
"delete" : "replace"), tmp->ml_type ));
|
||||
|
||||
if ( tmp->ml_bvalues == NULL ) {
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_DETAIL1,
|
||||
"\t\tno values" ));
|
||||
} else if ( tmp->ml_bvalues[0] == NULL ) {
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_DETAIL1,
|
||||
"\t\tzero values" ));
|
||||
} else if ( tmp->ml_bvalues[1] == NULL ) {
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_DETAIL1,
|
||||
"\t\tone value" ));
|
||||
} else {
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_DETAIL1,
|
||||
"\t\tmultiple values" ));
|
||||
}
|
||||
|
||||
#else
|
||||
Debug( LDAP_DEBUG_ARGS, "\t%s: %s\n",
|
||||
tmp->ml_op == LDAP_MOD_ADD
|
||||
? "add" : (tmp->ml_op == LDAP_MOD_DELETE
|
||||
? "delete" : "replace"), tmp->ml_type, 0 );
|
||||
#endif
|
||||
|
||||
if ( tmp->ml_bvalues == NULL ) {
|
||||
Debug( LDAP_DEBUG_ARGS, "%s\n",
|
||||
"\t\tno values", NULL, NULL );
|
||||
} else if ( tmp->ml_bvalues[0] == NULL ) {
|
||||
Debug( LDAP_DEBUG_ARGS, "%s\n",
|
||||
"\t\tzero values", NULL, NULL );
|
||||
} else if ( tmp->ml_bvalues[1] == NULL ) {
|
||||
Debug( LDAP_DEBUG_ARGS, "%s, length %ld\n",
|
||||
"\t\tone value", (long) tmp->ml_bvalues[0]->bv_len, NULL );
|
||||
} else {
|
||||
Debug( LDAP_DEBUG_ARGS, "%s\n",
|
||||
"\t\tmultiple values", NULL, NULL );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ value_add(
|
|||
*vals = (struct berval **) ch_malloc( (nn + 1)
|
||||
* sizeof(struct berval *) );
|
||||
n = 0;
|
||||
|
||||
} else {
|
||||
for ( n = 0; (*vals)[n] != NULL; n++ )
|
||||
; /* NULL */
|
||||
|
|
@ -41,10 +42,8 @@ value_add(
|
|||
}
|
||||
|
||||
for ( i = 0, j = 0; i < nn; i++ ) {
|
||||
if ( addvals[i]->bv_len > 0 ) {
|
||||
(*vals)[n + j] = ber_bvdup( addvals[i] );
|
||||
if( (*vals)[n + j++] == NULL ) break;
|
||||
}
|
||||
(*vals)[n + j] = ber_bvdup( addvals[i] );
|
||||
if( (*vals)[n + j++] == NULL ) break;
|
||||
}
|
||||
(*vals)[n + j] = NULL;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue