From f6bc2aff352d6dfe746196600af60a022af96ff1 Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Mon, 3 Jan 2011 19:53:47 +0000
Subject: [PATCH] ITS#6635

---
 CHANGES                | 1 +
 servers/slapd/filter.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/CHANGES b/CHANGES
index ed08ed8ecc..d99ed0c1b5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -14,6 +14,7 @@ OpenLDAP 2.4.24 Engineering
 	Fixed liblutil getpass prompts (ITS#6702)
 	Fixed ldapsearch segfault with deref (ITS#6638)
 	Fixed slapd acl parsing overflow (ITS#6611)
+	Fixed slapd filter leak (ITS#6635)
 	Fixed slapd when first acl is value dependent (ITS#6693)
 	Fixed slapd modify to return actual error (ITS#6581)
 	Fixed slapd sortvals of attributes with 1 value (ITS#6715)
diff --git a/servers/slapd/filter.c b/servers/slapd/filter.c
index ff8efa6a2a..a1d6411731 100644
--- a/servers/slapd/filter.c
+++ b/servers/slapd/filter.c
@@ -521,6 +521,8 @@ filter_free_x( Operation *op, Filter *f, int freeme )
 
 	switch ( f->f_choice ) {
 	case LDAP_FILTER_PRESENT:
+		if ( f->f_desc->ad_flags & SLAP_DESC_TEMPORARY )
+			op->o_tmpfree( f->f_desc, op->o_tmpmemctx );
 		break;
 
 	case LDAP_FILTER_EQUALITY:
-- 
GitLab