]> git.sur5r.net Git - openldap/commitdiff
ITS#5518,ITS#5525
authorQuanah Gibson-Mount <quanah@openldap.org>
Fri, 23 May 2008 18:45:07 +0000 (18:45 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Fri, 23 May 2008 18:45:07 +0000 (18:45 +0000)
CHANGES
libraries/libldap/request.c

diff --git a/CHANGES b/CHANGES
index a76758c8b8e4bc4cc49615e46a6d39e0eb4d3fb8..8e5fb505e6b1af6ce9c6d8d68eda9537e096b3dc 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,7 @@ OpenLDAP 2.3 Change Log
 
 OpenLDAP 2.3.42 Release (2008/05/15)
        Fixed libldap file descriptor leak with SELinux (ITS#5507)
+       Fixed libldap ld_defconn cleanup if it was freed (ITS#5518, ITS#5525)
        Fixed slapd abstract objectClass inheritance check (ITS#5474)
        Fixed slapd connection handling (ITS#5469)
        Fixed slapd delta-syncrepl refresh mode (ITS#5376)
index 161cac815a45997b8a13d0eaad97585bec4d4a96..fb1954b2f2c042c1f74c2a5e9ea8753c29b6e0d3 100644 (file)
@@ -601,6 +601,9 @@ ldap_free_connection( LDAP *ld, LDAPConn *lc, int force, int unbind )
                                } else {
                                    prevlc->lconn_next = tmplc->lconn_next;
                                }
+                               if ( ld->ld_defconn == lc ) {
+                                       ld->ld_defconn = NULL;
+                               }
                                break;
                        }
                        prevlc = tmplc;
@@ -631,6 +634,8 @@ ldap_free_connection( LDAP *ld, LDAPConn *lc, int force, int unbind )
                }
                if ( lc->lconn_sb != ld->ld_sb ) {
                        ber_sockbuf_free( lc->lconn_sb );
+               } else {
+                       ber_int_sb_close( lc->lconn_sb );
                }
                if ( lc->lconn_rebind_queue != NULL) {
                        int i;