diff options
author | Christian Grothoff <christian@grothoff.org> | 2015-02-12 20:12:42 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2015-02-12 20:12:42 +0000 |
commit | 5514bc994bef5815fdde08b36df7939ee1cf71b6 (patch) | |
tree | 9ece29f6e21e257dbc5ff258c4773999916e1ab2 | |
parent | bc2da28e8bfac47c9a0b0529a487369daff066a0 (diff) | |
download | gnunet-5514bc994bef5815fdde08b36df7939ee1cf71b6.tar.gz gnunet-5514bc994bef5815fdde08b36df7939ee1cf71b6.zip |
-fix memory leak of address on shutdown
-rw-r--r-- | src/ats/ats_api_scheduling.c | 9 |
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, | |||
608 | void | 608 | void |
609 | GNUNET_ATS_scheduling_done (struct GNUNET_ATS_SchedulingHandle *sh) | 609 | GNUNET_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, |