From 458a902e99c10d20778f6e620021d245ef0a03a1 Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Tue, 12 May 2015 11:47:52 -0400 Subject: [PATCH] Ticket 48026 - Fix memory leak in uniqueness plugin Bug Description: The config free function did not free all of the config properly Fix Description: Need to free the "attrs" pointer and the "attr_friendly" char string. https://fedorahosted.org/389/ticket/48026 Reviewed by: ? --- ldap/servers/plugins/uiduniq/uid.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/ldap/servers/plugins/uiduniq/uid.c b/ldap/servers/plugins/uiduniq/uid.c index 85f3d9e..aef83b9 100644 --- a/ldap/servers/plugins/uiduniq/uid.c +++ b/ldap/servers/plugins/uiduniq/uid.c @@ -129,21 +129,23 @@ static char *moreInfo = static void free_uniqueness_config(struct attr_uniqueness_config *config) { - int i; + int i; - for (i = 0; config->attrs && config->attrs[i]; i++) { - slapi_ch_free_string((char **) &(config->attrs[i])); - } - for (i = 0; config->subtrees && config->subtrees[i]; i++) { - slapi_sdn_free(&config->subtrees[i]); - } - for (i = 0; config->exclude_subtrees && config->exclude_subtrees[i]; i++) { - slapi_sdn_free(&config->exclude_subtrees[i]); - } - slapi_ch_free((void **) &config->subtrees); - slapi_ch_free((void **) &config->exclude_subtrees); - slapi_ch_free_string((char **) &config->top_entry_oc); - slapi_ch_free_string((char **) &config->subtree_entries_oc); + for (i = 0; config->attrs && config->attrs[i]; i++) { + slapi_ch_free_string((char **) &(config->attrs[i])); + } + for (i = 0; config->subtrees && config->subtrees[i]; i++) { + slapi_sdn_free(&config->subtrees[i]); + } + for (i = 0; config->exclude_subtrees && config->exclude_subtrees[i]; i++) { + slapi_sdn_free(&config->exclude_subtrees[i]); + } + slapi_ch_free((void **) &config->attrs); + slapi_ch_free((void **) &config->subtrees); + slapi_ch_free((void **) &config->exclude_subtrees); + slapi_ch_free_string(&config->attr_friendly); + slapi_ch_free_string((char **) &config->top_entry_oc); + slapi_ch_free_string((char **) &config->subtree_entries_oc); } /* -- 1.9.3