andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 4 months ago
Clone
Blob Blame History Raw
From b886661e3593aaa0bf0a7f8e0bbb3c53dd5b1f0f Mon Sep 17 00:00:00 2001
From: Mark Reynolds <mreynolds@redhat.com>
Date: Tue, 2 Dec 2014 13:38:06 -0500
Subject: [PATCH 279/305] Ticket 47969 - COS memory leak when rebuilding the
 cache

Bug Description:  When the COS cache is released, not all of the schema
                  objectclasses are freed.  So every time we rebuild the
                  COS cache we leak memory.

Fix Description:  After we free the schema attributes, the very first
                  attribute still needs to be freed.  It is not freed
                  initially because of the duplicate checking logic, so
                  it is now done after the loop.

https://fedorahosted.org/389/ticket/47969

Reviewed by: nhosoi(Thanks!)

(cherry picked from commit d2dfda95c543f106443f898436151b00c68e4270)
(cherry picked from commit 2444e0c4362615c4c65ffceeeb30d9380fb61e49)
---
 ldap/servers/plugins/cos/cos_cache.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ldap/servers/plugins/cos/cos_cache.c b/ldap/servers/plugins/cos/cos_cache.c
index 9c49c12..db34d15 100644
--- a/ldap/servers/plugins/cos/cos_cache.c
+++ b/ldap/servers/plugins/cos/cos_cache.c
@@ -1907,6 +1907,8 @@ static void cos_cache_del_schema(cosCache *pCache)
 			}
 		}
 	}
+	/* Finally, remove the first attribute's objectclass list */
+	cos_cache_del_attrval_list(&(pCache->ppAttrIndex[0]->pObjectclasses));
 
 	LDAPDebug( LDAP_DEBUG_TRACE, "<-- cos_cache_del_schema\n",0,0,0);
 }
-- 
1.9.3