From 3c5848a71eae0e01fdf4e8e3ec2b37831315ce02 Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc@openldap.org>
Date: Wed, 8 Dec 1999 21:37:55 +0000
Subject: [PATCH] Fix ldap_chase_referrals to treat "ldap://host/" referrals
 the same as "ldap://host".

---
 libraries/libldap/request.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/libraries/libldap/request.c b/libraries/libldap/request.c
index c017a57eef..2ea5259072 100644
--- a/libraries/libldap/request.c
+++ b/libraries/libldap/request.c
@@ -568,7 +568,7 @@ ldap_free_request( LDAP *ld, LDAPRequest *lr )
 int
 ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp )
 {
-	int		rc, count, len, newdn;
+	int		rc, count, len, newdn = 0;
 #ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_DNS
 	int		ldapref;
 #endif /* LDAP_API_FEATURE_X_OPENLDAP_V2_DNS */
@@ -656,9 +656,13 @@ ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp )
 		*hadrefp = 1;
 		if (( refdn = strchr( tmpref, '/' )) != NULL ) {
 			*refdn++ = '\0';
-			newdn = 1;
-		} else {
-			newdn = 0;
+			if ( *refdn != '\0' )
+			{
+				newdn = 1;
+			} else
+			{
+				refdn = NULL;
+			}
 		}
 
 		if (( ber = re_encode_request( ld, origreq->lr_ber,
-- 
GitLab