From e9c5581518bde1a5117cc68c2ed40ff00b6564fa Mon Sep 17 00:00:00 2001 From: William Brown Date: Mon, 20 Nov 2017 17:45:38 +0100 Subject: [PATCH 3/4] Ticket 49445 - Memory leak in ldif2db Bug Description: Memory leak in ldif2db of the instance name selected for the import Fix Description: Free the affected memory. https://pagure.io/389-ds-base/issue/49445 Author: wibrown Review by: ??? --- ldap/servers/slapd/main.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ldap/servers/slapd/main.c b/ldap/servers/slapd/main.c index f8b591e..283559a 100644 --- a/ldap/servers/slapd/main.c +++ b/ldap/servers/slapd/main.c @@ -2051,11 +2051,11 @@ slapd_exemode_ldif2db(struct main_config *mcfg) * otherwise, we use included/excluded suffix list to specify a backend. */ if (NULL == mcfg->cmd_line_instance_name) { - char **instances, **ip; + char **instances; + char **ip; int counter; - if (lookup_instance_name_by_suffixes(mcfg->db2ldif_include, mcfg->db2ldif_exclude, - &instances) < 0) { + if (lookup_instance_name_by_suffixes(mcfg->db2ldif_include, mcfg->db2ldif_exclude, &instances) < 0) { slapi_log_err(SLAPI_LOG_ERR, "slapd_exemode_ldif2db", "Backend instances name [-n ] or " "included suffix [-s ] need to be specified.\n"); @@ -2082,6 +2082,7 @@ slapd_exemode_ldif2db(struct main_config *mcfg) slapi_log_err(SLAPI_LOG_INFO, "slapd_exemode_ldif2db", "Backend Instance: %s\n", *instances); mcfg->cmd_line_instance_name = *instances; + slapi_ch_free((void **)&instances); } } else { slapi_log_err(SLAPI_LOG_ERR, "slapd_exemode_ldif2db", @@ -2174,8 +2175,7 @@ slapd_exemode_db2ldif(int argc, char **argv, struct main_config *mcfg) char **instances, **ip; int counter; - if (lookup_instance_name_by_suffixes(mcfg->db2ldif_include, mcfg->db2ldif_exclude, - &instances) < 0) { + if (lookup_instance_name_by_suffixes(mcfg->db2ldif_include, mcfg->db2ldif_exclude, &instances) < 0) { slapi_log_err(SLAPI_LOG_ERR, "slapd_exemode_db2ldif", "Backend instances name [-n ] or " "included suffix [-s ] need to be specified.\n"); @@ -2388,8 +2388,7 @@ slapd_exemode_db2index(struct main_config *mcfg) char **instances, **ip; int counter; - if (lookup_instance_name_by_suffixes(mcfg->db2ldif_include, mcfg->db2ldif_exclude, - &instances) < 0) { + if (lookup_instance_name_by_suffixes(mcfg->db2ldif_include, mcfg->db2ldif_exclude, &instances) < 0) { slapi_log_err(SLAPI_LOG_ERR, "slapd_exemode_db2index", "Backend instances name [-n ] or " "included suffix [-s ] need to be specified.\n"); @@ -2416,6 +2415,7 @@ slapd_exemode_db2index(struct main_config *mcfg) slapi_log_err(SLAPI_LOG_INFO, "slapd_exemode_db2index", "Backend Instance: %s\n", *instances); mcfg->cmd_line_instance_name = *instances; + slapi_ch_free((void **)&instances); } } else { slapi_log_err(SLAPI_LOG_ERR, "slapd_exemode_db2index", @@ -2455,6 +2455,7 @@ slapd_exemode_db2index(struct main_config *mcfg) return_value = (*plugin->plg_db2index)(pb); slapi_pblock_destroy(pb); + charray_free(mcfg->db2index_attrs); slapi_ch_free((void **)&(mcfg->myname)); return (return_value); } -- 1.8.3.1