]> git.sur5r.net Git - openldap/commitdiff
ITS#5518,ITS#5525
authorQuanah Gibson-Mount <quanah@openldap.org>
Tue, 27 May 2008 22:08:37 +0000 (22:08 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Tue, 27 May 2008 22:08:37 +0000 (22:08 +0000)
CHANGES
libraries/libldap/request.c

diff --git a/CHANGES b/CHANGES
index 7d32a019053b576652db40ef8abe8a0eacf25238..3af472e719e8fe7acfade9374031fd6f9f06ad94 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,7 @@ OpenLDAP 2.4 Change Log
 
 OpenLDAP 2.4.10 Engineering
        Fixed libldap file descriptor leak with SELinux (ITS#5507)
+       Fixed libldap ld_defconn cleanup if it was freed (ITS#5518, ITS#5525)
        Fixed libldap_r missing stubs (ITS#5519)
        Fixed slapd missing termination of integerFilter keys (ITS#5503)
        Fixed slapd multiple attrs in URI (ITS#5516)
index 9894301b88dcf52090aa89464db300a2abc41b03..31d72ca0e2835b810fcc0d39de133b16d4707d3a 100644 (file)
@@ -631,6 +631,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;
@@ -675,6 +678,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) {