mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-01 12:39:35 -05:00
Rework control create/dup routines to distinguish not
present value from empty value.
This commit is contained in:
parent
92625471e1
commit
3d57f2ae67
1 changed files with 7 additions and 4 deletions
|
|
@ -336,8 +336,9 @@ ldap_control_dup( const LDAPControl *c )
|
|||
new->ldctl_oid = NULL;
|
||||
}
|
||||
|
||||
if( c->ldctl_value.bv_len > 0 ) {
|
||||
new->ldctl_value.bv_val = (char *) LDAP_MALLOC( c->ldctl_value.bv_len );
|
||||
if( c->ldctl_value.bv_val != NULL ) {
|
||||
new->ldctl_value.bv_val =
|
||||
(char *) LDAP_MALLOC( c->ldctl_value.bv_len + 1 );
|
||||
|
||||
if(new->ldctl_value.bv_val == NULL) {
|
||||
if(new->ldctl_oid != NULL) {
|
||||
|
|
@ -347,10 +348,12 @@ ldap_control_dup( const LDAPControl *c )
|
|||
return NULL;
|
||||
}
|
||||
|
||||
new->ldctl_value.bv_len = c->ldctl_value.bv_len;
|
||||
|
||||
AC_MEMCPY( new->ldctl_value.bv_val, c->ldctl_value.bv_val,
|
||||
c->ldctl_value.bv_len );
|
||||
|
||||
new->ldctl_value.bv_len = c->ldctl_value.bv_len;
|
||||
new->ldctl_value.bv_val[new->ldctl_value.bv_len] = '\0';
|
||||
|
||||
} else {
|
||||
new->ldctl_value.bv_len = 0;
|
||||
|
|
@ -410,7 +413,7 @@ ldap_create_control(
|
|||
LDAPControl *ctrl;
|
||||
struct berval *bvalp;
|
||||
|
||||
if ( requestOID == NULL || ber == NULL || ctrlp == NULL ) {
|
||||
if ( requestOID == NULL || ctrlp == NULL ) {
|
||||
return LDAP_PARAM_ERROR;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue