commit ade9baaf9b40c419f3ddefe6c8ee8f2c5ec8edce
parent 23147dd168d533e98a711c4dc5142d78f60986c8
Author: Daniel Pinto <danielpinto52@gmail.com>
Date: Tue, 12 Sep 2017 23:07:06 +0100
Fix memory leak when options_init_from_string returns error #22605
Diffstat:
1 file changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/or/config.c b/src/or/config.c
@@ -5210,6 +5210,12 @@ options_init_from_string(const char *cf_defaults, const char *cf,
return SETOPT_OK;
err:
+ if (opened_files) {
+ SMARTLIST_FOREACH(opened_files, char *, f, tor_free(f));
+ smartlist_free(opened_files);
+ }
+ // may have been set to opened_files, avoid double free
+ newoptions->FilesOpenedByIncludes = NULL;
or_options_free(newoptions);
or_options_free(newdefaultoptions);
if (*msg) {