From 430d13f2ebb3beb909fb87eb9587845549d04ff9 Mon Sep 17 00:00:00 2001
From: Kurt Zeilenga <kurt@openldap.org>
Date: Tue, 17 Oct 2000 21:50:38 +0000
Subject: [PATCH] Update non-published API

---
 libraries/libldap/controls.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/libraries/libldap/controls.c b/libraries/libldap/controls.c
index c48e83cb89..58ca93e81a 100644
--- a/libraries/libldap/controls.c
+++ b/libraries/libldap/controls.c
@@ -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;
 	}
 
-- 
GitLab