From 35da3e1d948bdd8c86862c36fe83ada2c73c6e34 Mon Sep 17 00:00:00 2001 From: Tomas Vanek Date: Wed, 14 Feb 2018 22:38:13 +0100 Subject: [PATCH] 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 Reviewed-on: http://openocd.zylin.com/4408 Tested-by: jenkins Reviewed-by: Marc Schink --- src/helper/configuration.c | 15 +++++++++++++++ src/helper/configuration.h | 2 ++ src/openocd.c | 2 ++ 3 files changed, 19 insertions(+) diff --git a/src/helper/configuration.c b/src/helper/configuration.c index 2a278838de..114ad2c6c9 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 3cbcd41f6f..cc28efcdb7 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 831bd17f2a..05533aae35 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) -- 2.30.2