]> git.sur5r.net Git - openocd/commitdiff
helper/configuration: free script_search_dirs and config_file_names
authorTomas Vanek <vanekt@fbl.cz>
Wed, 14 Feb 2018 21:38:13 +0000 (22:38 +0100)
committerTomas Vanek <vanekt@fbl.cz>
Wed, 7 Mar 2018 23:47:31 +0000 (23:47 +0000)
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>
src/helper/configuration.c
src/helper/configuration.h
src/openocd.c

index 2a278838dedb348baa987151c5df684df9889706..114ad2c6c90e6f47ee591d61becdbd92a15304d8 100644 (file)
@@ -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)
 {
index 3cbcd41f6f252c1411b114544b2d0af6bfed2fbe..cc28efcdb73bb998971beec708f87c0a3d875055 100644 (file)
@@ -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);
 
index 831bd17f2a64282b99c9920f00af8a9e44cc680f..05533aae3528554a4e2e24342cb98407204ee4ae 100644 (file)
@@ -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)