From be22a44e2ea4b3e23da37c58653453bb9fe13956 Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Wed, 17 Oct 2007 04:03:56 +0000
Subject: [PATCH] ITS#5100 ldap_control_dup - OID must be non-NULL

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

diff --git a/libraries/libldap/controls.c b/libraries/libldap/controls.c
index 059dc5266f..48c29a5473 100644
--- a/libraries/libldap/controls.c
+++ b/libraries/libldap/controls.c
@@ -337,7 +337,7 @@ ldap_control_dup( const LDAPControl *c )
 {
 	LDAPControl *new;
 
-	if ( c == NULL ) {
+	if ( c == NULL || c->ldctl_oid == NULL ) {
 		return NULL;
 	}
 
@@ -347,17 +347,11 @@ ldap_control_dup( const LDAPControl *c )
 		return NULL;
 	}
 
-	if( c->ldctl_oid != NULL ) {
-		new->ldctl_oid = LDAP_STRDUP( c->ldctl_oid );
+	new->ldctl_oid = LDAP_STRDUP( c->ldctl_oid );
 
-		if(new->ldctl_oid == NULL) {
-			LDAP_FREE( new );
-			return NULL;
-		}
-
-	} else {
-		/* FIXME: how can a control have null OID? */
-		new->ldctl_oid = NULL;
+	if(new->ldctl_oid == NULL) {
+		LDAP_FREE( new );
+		return NULL;
 	}
 
 	if( c->ldctl_value.bv_val != NULL ) {
-- 
GitLab