diff --git a/libraries/libldap/controls.c b/libraries/libldap/controls.c index aa38040c3e..042dfe97a7 100644 --- a/libraries/libldap/controls.c +++ b/libraries/libldap/controls.c @@ -427,7 +427,6 @@ ldap_create_control( LDAPControl *ctrl; assert( requestOID != NULL ); - assert( ber != NULL ); assert( ctrlp != NULL ); ctrl = (LDAPControl *) LDAP_MALLOC( sizeof(LDAPControl) ); @@ -435,7 +434,8 @@ ldap_create_control( return LDAP_NO_MEMORY; } - if ( ber_flatten2( ber, &ctrl->ldctl_value, 1 ) == -1 ) { + ctrl->ldctl_value = NULL; + if ( ber && ( ber_flatten2( ber, &ctrl->ldctl_value, 1 ) == -1 )) { LDAP_FREE( ctrl ); return LDAP_NO_MEMORY; } diff --git a/libraries/libldap/ppolicy.c b/libraries/libldap/ppolicy.c index 16193f6400..b82208fe76 100644 --- a/libraries/libldap/ppolicy.c +++ b/libraries/libldap/ppolicy.c @@ -61,21 +61,13 @@ int ldap_create_passwordpolicy_control( LDAP *ld, LDAPControl **ctrlp ) { - BerElement *ber; - assert( ld != NULL ); assert( LDAP_VALID( ld ) ); assert( ctrlp != NULL ); - if ((ber = ldap_alloc_ber_with_options(ld)) == NULL) { - ld->ld_errno = LDAP_NO_MEMORY; - return(LDAP_NO_MEMORY); - } - ld->ld_errno = ldap_create_control( LDAP_CONTROL_PASSWORDPOLICYREQUEST, - ber, 0, ctrlp); + NULL, 0, ctrlp); - ber_free(ber, 1); return(ld->ld_errno); }