aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-02-12 20:12:42 +0000
committerChristian Grothoff <christian@grothoff.org>2015-02-12 20:12:42 +0000
commit5514bc994bef5815fdde08b36df7939ee1cf71b6 (patch)
tree9ece29f6e21e257dbc5ff258c4773999916e1ab2
parentbc2da28e8bfac47c9a0b0529a487369daff066a0 (diff)
downloadgnunet-5514bc994bef5815fdde08b36df7939ee1cf71b6.tar.gz
gnunet-5514bc994bef5815fdde08b36df7939ee1cf71b6.zip
-fix memory leak of address on shutdown
-rw-r--r--src/ats/ats_api_scheduling.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/ats/ats_api_scheduling.c b/src/ats/ats_api_scheduling.c
index c1a80eb0a..333881a37 100644
--- a/src/ats/ats_api_scheduling.c
+++ b/src/ats/ats_api_scheduling.c
@@ -608,6 +608,7 @@ GNUNET_ATS_scheduling_init (const struct GNUNET_CONFIGURATION_Handle *cfg,
608void 608void
609GNUNET_ATS_scheduling_done (struct GNUNET_ATS_SchedulingHandle *sh) 609GNUNET_ATS_scheduling_done (struct GNUNET_ATS_SchedulingHandle *sh)
610{ 610{
611 struct GNUNET_ATS_AddressRecord *ar;
611 unsigned int i; 612 unsigned int i;
612 613
613 if (NULL != sh->mq) 614 if (NULL != sh->mq)
@@ -627,8 +628,12 @@ GNUNET_ATS_scheduling_done (struct GNUNET_ATS_SchedulingHandle *sh)
627 } 628 }
628 for (i=0;i<sh->session_array_size;i++) 629 for (i=0;i<sh->session_array_size;i++)
629 { 630 {
630 GNUNET_free_non_null (sh->session_array[i]); 631 if (NULL != (ar = sh->session_array[i]))
631 sh->session_array[i] = NULL; 632 {
633 GNUNET_HELLO_address_free (ar->address);
634 GNUNET_free (ar);
635 sh->session_array[i] = NULL;
636 }
632 } 637 }
633 GNUNET_array_grow (sh->session_array, 638 GNUNET_array_grow (sh->session_array,
634 sh->session_array_size, 639 sh->session_array_size,