diff options
author | Tomas Vanek <vanekt@fbl.cz> | 2018-02-14 22:38:13 +0100 |
---|---|---|
committer | Tomas Vanek <vanekt@fbl.cz> | 2018-03-07 23:47:31 +0000 |
commit | 35da3e1d948bdd8c86862c36fe83ada2c73c6e34 (patch) | |
tree | b24dec125e34cddefa08fb8e6265088f9e060fed /src | |
parent | 6c0590cb4d3e7701658279ee76d96e5c077fb256 (diff) | |
download | riscv-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.c | 15 | ||||
-rw-r--r-- | src/helper/configuration.h | 2 | ||||
-rw-r--r-- | src/openocd.c | 2 |
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) |