diff --git a/CHANGES b/CHANGES index 36f6a35ecd498b5730c3b12340c98cf1e587ac1b..2feab17e2130750efeb53e99bfbbb2b57e36b9e8 100644 --- a/CHANGES +++ b/CHANGES @@ -19,6 +19,7 @@ OpenLDAP 2.4.24 Engineering Fixed libldap EOF handling (ITS#6723) Fixed libldap GnuTLS hang on socket close (ITS#6673) Fixed libldap sasl partial write handling (ITS#6639) + Fixed libldap search leak (ITS#6453) Fixed libldap referral chasing (ITS#6602) Fixed libldap leak when chasing referrals (ITS#6744) Fixed libldap url parsing with NULL host (ITS#6653) diff --git a/libraries/libldap/search.c b/libraries/libldap/search.c index 65d55e477419d70bb3a4f49b65f38352ec9960cd..9bd71bb6163f7fbf1d334e2439592ade0018b894 100644 --- a/libraries/libldap/search.c +++ b/libraries/libldap/search.c @@ -182,6 +182,11 @@ ldap_pvt_search_s( if( rc <= 0 ) { /* error(-1) or timeout(0) */ + if ( ld->ld_errno == LDAP_TIMEOUT ) { + /* cleanup request */ + (void) ldap_abandon( ld, msgid ); + ld->ld_errno = LDAP_TIMEOUT; + } return( ld->ld_errno ); }