diff options
author | Nick Mathewson <nickm@torproject.org> | 2014-04-26 14:48:30 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2014-04-29 12:48:02 -0400 |
commit | aa0eb2022342798fc78b2bde89d393f37c59fe78 (patch) | |
tree | 559c4913bd41265a2cbe3b07b031c90c19fabeb5 /src | |
parent | ee9ed9d817ebfb9101030ed0f899871ba8113b74 (diff) | |
download | tor-aa0eb2022342798fc78b2bde89d393f37c59fe78.tar tor-aa0eb2022342798fc78b2bde89d393f37c59fe78.tar.gz |
Fix leaks in tests related to setting options->DataDirectory
We pre-populate that value in main(), and we weren't freeing it
before overriding it.
Diffstat (limited to 'src')
-rw-r--r-- | src/test/test_config.c | 13 | ||||
-rw-r--r-- | src/test/test_extorport.c | 1 | ||||
-rw-r--r-- | src/test/test_microdesc.c | 1 | ||||
-rw-r--r-- | src/test/test_routerkeys.c | 1 |
4 files changed, 13 insertions, 3 deletions
diff --git a/src/test/test_config.c b/src/test/test_config.c index 82bc92dc0..d3e32525e 100644 --- a/src/test/test_config.c +++ b/src/test/test_config.c @@ -196,9 +196,9 @@ static void test_config_check_or_create_data_subdir(void *arg) { or_options_t *options = get_options_mutable(); - char *datadir = options->DataDirectory = tor_strdup(get_fname("datadir-0")); + char *datadir; const char *subdir = "test_stats"; - char *subpath = get_datadir_fname(subdir); + char *subpath; struct stat st; int r; #if !defined (_WIN32) || defined (WINCE) @@ -206,6 +206,10 @@ test_config_check_or_create_data_subdir(void *arg) #endif (void)arg; + tor_free(options->DataDirectory); + datadir = options->DataDirectory = tor_strdup(get_fname("datadir-0")); + subpath = get_datadir_fname(subdir); + #if defined (_WIN32) && !defined (WINCE) tt_int_op(mkdir(options->DataDirectory), ==, 0); #else @@ -254,7 +258,7 @@ static void test_config_write_to_data_subdir(void *arg) { or_options_t* options = get_options_mutable(); - char *datadir = options->DataDirectory = tor_strdup(get_fname("datadir-1")); + char *datadir; char *cp = NULL; const char* subdir = "test_stats"; const char* fname = "test_file"; @@ -276,6 +280,9 @@ test_config_write_to_data_subdir(void *arg) char* filepath = get_datadir_fname2(subdir, fname); (void)arg; + tor_free(options->DataDirectory); + datadir = options->DataDirectory = tor_strdup(get_fname("datadir-1")); + #if defined (_WIN32) && !defined (WINCE) tt_int_op(mkdir(options->DataDirectory), ==, 0); #else diff --git a/src/test/test_extorport.c b/src/test/test_extorport.c index f91ac7415..d47792fdb 100644 --- a/src/test/test_extorport.c +++ b/src/test/test_extorport.c @@ -172,6 +172,7 @@ test_ext_or_init_auth(void *arg) (void)arg; /* Check default filename location */ + tor_free(options->DataDirectory); options->DataDirectory = tor_strdup("foo"); cp = get_ext_or_auth_cookie_file_name(); tt_str_op(cp, ==, "foo"PATH_SEPARATOR"extended_orport_auth_cookie"); diff --git a/src/test/test_microdesc.c b/src/test/test_microdesc.c index 53a03a48a..298248493 100644 --- a/src/test/test_microdesc.c +++ b/src/test/test_microdesc.c @@ -261,6 +261,7 @@ test_md_cache_broken(void *data) options = get_options_mutable(); tt_assert(options); + tor_free(options->DataDirectory); options->DataDirectory = tor_strdup(get_fname("md_datadir_test2")); #ifdef _WIN32 diff --git a/src/test/test_routerkeys.c b/src/test/test_routerkeys.c index 1c8174b06..182e0f6f8 100644 --- a/src/test/test_routerkeys.c +++ b/src/test/test_routerkeys.c @@ -27,6 +27,7 @@ test_routerkeys_write_fingerprint(void *arg) tt_assert(key); options->ORPort_set = 1; /* So that we can get the server ID key */ + tor_free(options->DataDirectory); options->DataDirectory = tor_strdup(ddir); options->Nickname = tor_strdup("haflinger"); set_server_identity_key(key); |