]> git.sur5r.net Git - openldap/commitdiff
ITS#6602
authorQuanah Gibson-Mount <quanah@openldap.org>
Fri, 17 Dec 2010 18:16:05 +0000 (18:16 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Fri, 17 Dec 2010 18:16:05 +0000 (18:16 +0000)
CHANGES
libraries/libldap/request.c

diff --git a/CHANGES b/CHANGES
index 50f70c3d34148e86a511cced55e503325a67e902..eaa6ea62bf2cee1a0706a345ec89b5bb98211386 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,7 @@ OpenLDAP 2.4.24 Engineering
        Fixed libldap dnssrv port format specifier (ITS#6644)
        Fixed libldap GnuTLS hang on socket close (ITS#6673)
        Fixed libldap sasl partial write handling (ITS#6639)
+       Fixed libldap referral chasing (ITS#6602)
        Fixed libldap url parsing with NULL host (ITS#6653)
        Fixed liblutil getpass prompts (ITS#6702)
        Fixed ldapsearch segfault with deref (ITS#6638)
index 287ce471093cf47ef23594da2b331aded36e3e8e..183e0d76af141212bf9255f90e88c471ee7739b3 100644 (file)
@@ -1044,6 +1044,7 @@ ldap_chase_v3referrals( LDAP *ld, LDAPRequest *lr, char **refs, int sref, char *
        LDAPConn        *lc;
        int                      rc, count, i, j, id;
        LDAPreqinfo  rinfo;
+       LDAP_NEXTREF_PROC       *nextref_proc = ld->ld_nextref_proc ? ld->ld_nextref_proc : ldap_int_nextref;
 
        ld->ld_errno = LDAP_SUCCESS;    /* optimistic */
        *hadrefp = 0;
@@ -1079,15 +1080,12 @@ ldap_chase_v3referrals( LDAP *ld, LDAPRequest *lr, char **refs, int sref, char *
        refarray = refs;
        refs = NULL;
 
-       if ( ld->ld_nextref_proc == NULL ) {
-               ld->ld_nextref_proc = ldap_int_nextref;
-       }
-
        /* parse out & follow referrals */
+       /* NOTE: if nextref_proc == ldap_int_nextref, params is ignored */
        i = -1;
-       for ( ld->ld_nextref_proc( ld, &refarray, &i, ld->ld_nextref_params );
+       for ( nextref_proc( ld, &refarray, &i, ld->ld_nextref_params );
                        i != -1;
-                       ld->ld_nextref_proc( ld, &refarray, &i, ld->ld_nextref_params ) )
+                       nextref_proc( ld, &refarray, &i, ld->ld_nextref_params ) )
        {
 
                /* Parse the referral URL */