aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-08-27 15:53:14 +0200
committerChristian Grothoff <christian@grothoff.org>2021-08-27 15:53:14 +0200
commit8dcf1134d4b9ce76baf9d7c3bd33a555a32f558e (patch)
tree37608bb0fcb901239b389da6b6628ab76f9ecf5b
parentb3ddcd0dbb6cf0db09f7bd156d73b3cb8e284e2d (diff)
downloadanastasis-8dcf1134d4b9ce76baf9d7c3bd33a555a32f558e.tar.gz
anastasis-8dcf1134d4b9ce76baf9d7c3bd33a555a32f558e.zip
-more leaks
-rw-r--r--src/reducer/anastasis_api_backup_redux.c13
-rw-r--r--src/reducer/anastasis_api_redux.c6
2 files changed, 14 insertions, 5 deletions
diff --git a/src/reducer/anastasis_api_backup_redux.c b/src/reducer/anastasis_api_backup_redux.c
index e025810..c8c0404 100644
--- a/src/reducer/anastasis_api_backup_redux.c
+++ b/src/reducer/anastasis_api_backup_redux.c
@@ -667,10 +667,13 @@ struct PolicyBuilder
667static void 667static void
668free_costs (struct Costs *costs) 668free_costs (struct Costs *costs)
669{ 669{
670 if (NULL == costs) 670 while (NULL != costs)
671 return; 671 {
672 free_costs (costs->next); 672 struct Costs *next = costs->next;
673 GNUNET_free (costs); 673
674 GNUNET_free (costs);
675 costs = next;
676 }
674} 677}
675 678
676 679
@@ -1548,6 +1551,8 @@ clean_pb (struct PolicyBuilder *pb)
1548 GNUNET_CONTAINER_DLL_remove (p->pm_head, 1551 GNUNET_CONTAINER_DLL_remove (p->pm_head,
1549 p->pm_tail, 1552 p->pm_tail,
1550 pm); 1553 pm);
1554 for (unsigned int i = 0; i<pb->req_methods; i++)
1555 free_costs (pm->providers[i].usage_fee);
1551 GNUNET_free (pm->providers); 1556 GNUNET_free (pm->providers);
1552 GNUNET_free (pm); 1557 GNUNET_free (pm);
1553 } 1558 }
diff --git a/src/reducer/anastasis_api_redux.c b/src/reducer/anastasis_api_redux.c
index 6262033..f55eece 100644
--- a/src/reducer/anastasis_api_redux.c
+++ b/src/reducer/anastasis_api_redux.c
@@ -349,7 +349,6 @@ free_config_request (struct ConfigRequest *cr)
349 GNUNET_free (cr->business_name); 349 GNUNET_free (cr->business_name);
350 for (unsigned int i = 0; i<cr->methods_length; i++) 350 for (unsigned int i = 0; i<cr->methods_length; i++)
351 GNUNET_free (cr->methods[i].type); 351 GNUNET_free (cr->methods[i].type);
352 GNUNET_free (cr->business_name);
353 GNUNET_free (cr->methods); 352 GNUNET_free (cr->methods);
354 GNUNET_free (cr); 353 GNUNET_free (cr);
355} 354}
@@ -571,8 +570,13 @@ config_cb (void *cls,
571 } 570 }
572 else 571 else
573 { 572 {
573 GNUNET_free (cr->currency);
574 cr->currency = GNUNET_strdup (acfg->currency); 574 cr->currency = GNUNET_strdup (acfg->currency);
575 GNUNET_free (cr->business_name);
575 cr->business_name = GNUNET_strdup (acfg->business_name); 576 cr->business_name = GNUNET_strdup (acfg->business_name);
577 for (unsigned int i = 0; i<cr->methods_length; i++)
578 GNUNET_free (cr->methods[i].type);
579 GNUNET_free (cr->methods);
576 cr->methods = GNUNET_new_array (acfg->methods_length, 580 cr->methods = GNUNET_new_array (acfg->methods_length,
577 struct AuthorizationMethodConfig); 581 struct AuthorizationMethodConfig);
578 for (unsigned int i = 0; i<acfg->methods_length; i++) 582 for (unsigned int i = 0; i<acfg->methods_length; i++)