From e42bc1fee831c13204b456bc09ea0f81ab23a284 Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Tue, 4 Jan 2011 20:22:38 +0000
Subject: [PATCH] ITS#6453

---
 CHANGES                    | 1 +
 libraries/libldap/search.c | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/CHANGES b/CHANGES
index 36f6a35ecd..2feab17e21 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 65d55e4774..9bd71bb616 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 );
 	}
 
-- 
GitLab