[tor-commits] [tor/master] Fix a memory leak introduced by the changes to test_options.c

nickm at torproject.org nickm at torproject.org
Tue Oct 22 11:51:42 UTC 2019


commit cb13930f2bc21c09bc0e5a4a01487a4a9f82707f
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Oct 21 18:28:53 2019 -0400

    Fix a memory leak introduced by the changes to test_options.c
    
    Since this code passes the same options to options_validate() more
    than once, options_validate() needs to be prepared for that.  (This
    previously worked by accident, since the smartlist of schedulers
    wasn't initialized.)
---
 src/app/config/config.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/app/config/config.c b/src/app/config/config.c
index c7ae453d5..a202454e2 100644
--- a/src/app/config/config.c
+++ b/src/app/config/config.c
@@ -3330,6 +3330,10 @@ options_validate_scheduler(or_options_t *options, char **msg)
            "can be used or set at least one value.");
   }
   /* Ok, we do have scheduler types, validate them. */
+  if (options->SchedulerTypes_) {
+    SMARTLIST_FOREACH(options->SchedulerTypes_, int *, iptr, tor_free(iptr));
+    smartlist_free(options->SchedulerTypes_);
+  }
   options->SchedulerTypes_ = smartlist_new();
   SMARTLIST_FOREACH_BEGIN(options->Schedulers, const char *, type) {
     int *sched_type;





More information about the tor-commits mailing list