mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-29 11:09:34 -05:00
Don't touch (unescape) URL handed to rebind proc.
This commit is contained in:
parent
8f9980d5f6
commit
f8d9bffb98
2 changed files with 10 additions and 9 deletions
|
|
@ -788,8 +788,7 @@ ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp )
|
|||
|
||||
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;
|
||||
|
|
@ -826,6 +825,9 @@ ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp )
|
|||
p = NULL;
|
||||
}
|
||||
|
||||
/* copy the complete referral for rebind process */
|
||||
rinfo.ri_url = LDAP_STRDUP( ref );
|
||||
|
||||
ldap_pvt_hex_unescape( ref );
|
||||
len = strlen( ref );
|
||||
|
||||
|
|
@ -841,12 +843,11 @@ ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp )
|
|||
"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 ) {
|
||||
|
|
|
|||
|
|
@ -950,10 +950,10 @@ ldap_url_search_s(
|
|||
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 ) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue