len = strlen( *errstrp );
for ( p = *errstrp; len >= LDAP_REF_STR_LEN; ++p, --len ) {
- if (( *p == 'R' || *p == 'r' ) && strncasecmp( p,
- LDAP_REF_STR, LDAP_REF_STR_LEN ) == 0 ) {
+ if ( strncasecmp( p, LDAP_REF_STR, LDAP_REF_STR_LEN ) == 0 ) {
*p = '\0';
p += LDAP_REF_STR_LEN;
break;
p = NULL;
}
+ /* copy the complete referral for rebind process */
+ rinfo.ri_url = LDAP_STRDUP( ref );
+
ldap_pvt_hex_unescape( ref );
len = strlen( ref );
"ignoring unknown referral <%s>\n", ref, 0, 0 );
rc = ldap_append_referral( ld, &unfollowed, ref );
*hadrefp = 1;
+ LDAP_FREE( rinfo.ri_url );
+ rinfo.ri_url = NULL;
continue;
}
- /* copy the complete referral for rebind process */
- rinfo.ri_url = LDAP_STRDUP( ref );
-
*hadrefp = 1;
if (( refdn = strchr( tmpref, '/' )) != NULL ) {
void
ldap_pvt_hex_unescape( char *s )
{
-/*
-* Remove URL hex escapes from s... done in place. The basic concept for
-* this routine is borrowed from the WWW library HTUnEscape() routine.
-*/
+ /*
+ * Remove URL hex escapes from s... done in place. The basic concept for
+ * this routine is borrowed from the WWW library HTUnEscape() routine.
+ */
char *p;
for ( p = s; *s != '\0'; ++s ) {