]> git.sur5r.net Git - openldap/commitdiff
ITS#5518,#5525 cleanup ld_defconn if it was freed
authorHoward Chu <hyc@openldap.org>
Fri, 23 May 2008 09:53:42 +0000 (09:53 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 23 May 2008 09:53:42 +0000 (09:53 +0000)
libraries/libldap/request.c

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) {