aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-08-03 14:32:48 +0200
committerChristian Grothoff <christian@grothoff.org>2021-08-03 14:32:48 +0200
commit9fecb9ed0ea6ae70d636412dead00e56cb3f474c (patch)
treed1b3ded5fceead54441bed597740b515c15da1b6
parentfb80c773d04c339ce8b59c8f496d8af110e28988 (diff)
downloadgnunet-9fecb9ed0ea6ae70d636412dead00e56cb3f474c.tar.gz
gnunet-9fecb9ed0ea6ae70d636412dead00e56cb3f474c.zip
-fix memory leaks
-rw-r--r--src/util/configuration.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/util/configuration.c b/src/util/configuration.c
index 93bc03189..dff3c2e99 100644
--- a/src/util/configuration.c
+++ b/src/util/configuration.c
@@ -322,7 +322,9 @@ GNUNET_CONFIGURATION_destroy (struct GNUNET_CONFIGURATION_Handle *cfg)
322 GNUNET_CONTAINER_DLL_remove (cfg->loaded_files_head, 322 GNUNET_CONTAINER_DLL_remove (cfg->loaded_files_head,
323 cfg->loaded_files_tail, 323 cfg->loaded_files_tail,
324 cf); 324 cf);
325 GNUNET_free (cf);
325 } 326 }
327 GNUNET_free (cfg->main_filename);
326 GNUNET_free (cfg); 328 GNUNET_free (cfg);
327} 329}
328 330
@@ -336,7 +338,9 @@ GNUNET_CONFIGURATION_parse_and_run (const char *filename,
336 enum GNUNET_GenericReturnValue ret; 338 enum GNUNET_GenericReturnValue ret;
337 339
338 cfg = GNUNET_CONFIGURATION_create (); 340 cfg = GNUNET_CONFIGURATION_create ();
339 if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg, filename)) 341 if (GNUNET_OK !=
342 GNUNET_CONFIGURATION_load (cfg,
343 filename))
340 { 344 {
341 GNUNET_break (0); 345 GNUNET_break (0);
342 GNUNET_CONFIGURATION_destroy (cfg); 346 GNUNET_CONFIGURATION_destroy (cfg);
@@ -620,7 +624,7 @@ handle_inline (struct GNUNET_CONFIGURATION_Handle *cfg,
620 { 624 {
621 fun_ret = GNUNET_OK; 625 fun_ret = GNUNET_OK;
622 } 626 }
623 cleanup: 627cleanup:
624 cfg->current_nest_level = old_nest_level; 628 cfg->current_nest_level = old_nest_level;
625 if (NULL != other_cfg) 629 if (NULL != other_cfg)
626 GNUNET_CONFIGURATION_destroy (other_cfg); 630 GNUNET_CONFIGURATION_destroy (other_cfg);
@@ -2314,7 +2318,7 @@ GNUNET_CONFIGURATION_load_from (struct GNUNET_CONFIGURATION_Handle *cfg,
2314 if (fun_ret != GNUNET_OK) 2318 if (fun_ret != GNUNET_OK)
2315 break; 2319 break;
2316 } 2320 }
2317 cleanup: 2321cleanup:
2318 if (files_context.files_length > 0) 2322 if (files_context.files_length > 0)
2319 { 2323 {
2320 for (size_t i = 0; i < files_context.files_length; i++) 2324 for (size_t i = 0; i < files_context.files_length; i++)
@@ -2467,7 +2471,10 @@ GNUNET_CONFIGURATION_load (struct GNUNET_CONFIGURATION_Handle *cfg,
2467 } 2471 }
2468 cfg->load_called = true; 2472 cfg->load_called = true;
2469 if (NULL != filename) 2473 if (NULL != filename)
2474 {
2475 GNUNET_free (cfg->main_filename);
2470 cfg->main_filename = GNUNET_strdup (filename); 2476 cfg->main_filename = GNUNET_strdup (filename);
2477 }
2471 2478
2472 base_config_varname = GNUNET_OS_project_data_get ()->base_config_varname; 2479 base_config_varname = GNUNET_OS_project_data_get ()->base_config_varname;
2473 2480