]> git.sur5r.net Git - openldap/commitdiff
re-fix ITS#4405 (really start from the first conn)
authorPierangelo Masarati <ando@openldap.org>
Fri, 18 Aug 2006 17:14:38 +0000 (17:14 +0000)
committerPierangelo Masarati <ando@openldap.org>
Fri, 18 Aug 2006 17:14:38 +0000 (17:14 +0000)
CHANGES
libraries/libldap/result.c

diff --git a/CHANGES b/CHANGES
index 11a402ed0482692c8b20944a8059a3c2d46a29a3..25afc751c0746b9149f3b3f94ccd3a801ae1b3d1 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,7 @@
 OpenLDAP 2.3 Change Log
 
 OpenLDAP 2.3.27 Engineering
+       Fixed libldap dangling pointer issue (previous fix was broken) (ITS#4405)
 
 OpenLDAP 2.3.26 Release
        Fixed libldap dnssrv bug with "not present" positive statement (ITS#4610)
index 7e0bad24ba7497e42046982683a4820c8140a63e..2c0ede80c4c41a353ea15fea750a58cd342940d3 100644 (file)
@@ -333,8 +333,7 @@ wait4msg(
                                        ldap_pvt_thread_mutex_lock( &ld->ld_conn_mutex );
 #endif
                                        for ( lc = ld->ld_conns;
-                                               rc == LDAP_MSG_X_KEEP_LOOKING && lc != NULL;
-                                               lc = lc->lconn_next )
+                                               rc == LDAP_MSG_X_KEEP_LOOKING && lc != NULL; )
                                        {
                                                if ( lc->lconn_status == LDAP_CONNST_CONNECTED &&
                                                        ldap_is_read_ready( ld, lc->lconn_sb ))
@@ -353,8 +352,14 @@ wait4msg(
                                                                 * sane; better restart
                                                                 * (ITS#4405) */
                                                                lc = ld->ld_conns;
+
+                                                               /* don't get to next conn! */
+                                                               break;
                                                        }
                                                }
+
+                                               /* next conn */
+                                               lc = lc->lconn_next;
                                        }
 #ifdef LDAP_R_COMPILE
                                        ldap_pvt_thread_mutex_unlock( &ld->ld_conn_mutex );