From 5713128aa59ad15df97387a0b13540a662ac490d Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount <quanah@openldap.org> Date: Tue, 27 May 2008 22:08:37 +0000 Subject: [PATCH] ITS#5518,ITS#5525 --- CHANGES | 1 + libraries/libldap/request.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGES b/CHANGES index 7d32a01905..3af472e719 100644 --- 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) diff --git a/libraries/libldap/request.c b/libraries/libldap/request.c index 9894301b88..31d72ca0e2 100644 --- a/libraries/libldap/request.c +++ b/libraries/libldap/request.c @@ -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) { -- GitLab