aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTomas Vanek <vanekt@fbl.cz>2018-02-14 22:38:13 +0100
committerTomas Vanek <vanekt@fbl.cz>2018-03-07 23:47:31 +0000
commit35da3e1d948bdd8c86862c36fe83ada2c73c6e34 (patch)
treeb24dec125e34cddefa08fb8e6265088f9e060fed /src
parent6c0590cb4d3e7701658279ee76d96e5c077fb256 (diff)
downloadriscv-openocd-35da3e1d948bdd8c86862c36fe83ada2c73c6e34.zip
riscv-openocd-35da3e1d948bdd8c86862c36fe83ada2c73c6e34.tar.gz
riscv-openocd-35da3e1d948bdd8c86862c36fe83ada2c73c6e34.tar.bz2
helper/configuration: free script_search_dirs and config_file_names
Although the leak is negligible, the clean heap on exit will ease valgrind testing. Change-Id: If43f02fe594c30ceb1bea3259ea3e098d4b2d239 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: http://openocd.zylin.com/4408 Tested-by: jenkins Reviewed-by: Marc Schink <openocd-dev@marcschink.de>
Diffstat (limited to 'src')
-rw-r--r--src/helper/configuration.c15
-rw-r--r--src/helper/configuration.h2
-rw-r--r--src/openocd.c2
3 files changed, 19 insertions, 0 deletions
diff --git a/src/helper/configuration.c b/src/helper/configuration.c
index 2a27883..114ad2c 100644
--- a/src/helper/configuration.c
+++ b/src/helper/configuration.c
@@ -51,6 +51,21 @@ void add_config_command(const char *cfg)
config_file_names[num_config_files] = NULL;
}
+void free_config(void)
+{
+ while (num_config_files)
+ free(config_file_names[--num_config_files]);
+
+ free(config_file_names);
+ config_file_names = NULL;
+
+ while (num_script_dirs)
+ free(script_search_dirs[--num_script_dirs]);
+
+ free(script_search_dirs);
+ script_search_dirs = NULL;
+}
+
/* return full path or NULL according to search rules */
char *find_file(const char *file)
{
diff --git a/src/helper/configuration.h b/src/helper/configuration.h
index 3cbcd41..cc28efc 100644
--- a/src/helper/configuration.h
+++ b/src/helper/configuration.h
@@ -32,6 +32,8 @@ void add_config_command(const char *cfg);
void add_script_search_dir(const char *dir);
+void free_config(void);
+
int configuration_output_handler(struct command_context *cmd_ctx,
const char *line);
diff --git a/src/openocd.c b/src/openocd.c
index 831bd17..05533aa 100644
--- a/src/openocd.c
+++ b/src/openocd.c
@@ -349,6 +349,8 @@ int openocd_main(int argc, char *argv[])
adapter_quit();
+ free_config();
+
if (ERROR_FAIL == ret)
return EXIT_FAILURE;
else if (ERROR_OK != ret)