From: Quanah Gibson-Mount Date: Fri, 23 May 2008 18:45:07 +0000 (+0000) Subject: ITS#5518,ITS#5525 X-Git-Tag: OPENLDAP_REL_ENG_2_3_42~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78b2f4174a21db7545710401f84c451165c4ba43;p=thirdparty%2Fopenldap.git ITS#5518,ITS#5525 --- diff --git a/CHANGES b/CHANGES index a76758c8b8..8e5fb505e6 100644 --- 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) diff --git a/libraries/libldap/request.c b/libraries/libldap/request.c index 161cac815a..fb1954b2f2 100644 --- a/libraries/libldap/request.c +++ b/libraries/libldap/request.c @@ -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;