diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-11-15 16:47:22 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-11-15 16:47:22 -0500 |
commit | aebe8a82c9a1a8ee1df9d1dbb82807d342f49203 (patch) | |
tree | 5cf65cd1356cafa0d8a519b19cfd7404a0d6584e /src | |
parent | 34e4d5a78362b3f133958740a18d0ee06ae4fdad (diff) | |
parent | 4fd761a418558c05716b4a04a5306dc67ce53dfe (diff) | |
download | tor-aebe8a82c9a1a8ee1df9d1dbb82807d342f49203.tar.gz tor-aebe8a82c9a1a8ee1df9d1dbb82807d342f49203.zip |
Merge branch 'bug26913_033' into maint-0.3.3
Diffstat (limited to 'src')
-rw-r--r-- | src/or/config.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/or/config.c b/src/or/config.c index 58080c65e3..e50e6efa20 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -259,7 +259,7 @@ static config_var_t option_vars_[] = { V(BridgeRelay, BOOL, "0"), V(BridgeDistribution, STRING, NULL), VAR("CacheDirectory", FILENAME, CacheDirectory_option, NULL), - V(CacheDirectoryGroupReadable, BOOL, "0"), + V(CacheDirectoryGroupReadable, AUTOBOOL, "auto"), V(CellStatistics, BOOL, "0"), V(PaddingStatistics, BOOL, "1"), V(LearnCircuitBuildTimeout, BOOL, "1"), @@ -1516,9 +1516,26 @@ options_act_reversible(const or_options_t *old_options, char **msg) msg) < 0) { goto done; } + + /* We need to handle the group-readable flag for the cache directory + * specially, since the directory defaults to being the same as the + * DataDirectory. */ + int cache_dir_group_readable; + if (options->CacheDirectoryGroupReadable != -1) { + /* If the user specified a value, use their setting */ + cache_dir_group_readable = options->CacheDirectoryGroupReadable; + } else if (!strcmp(options->CacheDirectory, options->DataDirectory)) { + /* If the user left the value as "auto", and the cache is the same as the + * datadirectory, use the datadirectory setting. + */ + cache_dir_group_readable = options->DataDirectoryGroupReadable; + } else { + /* Otherwise, "auto" means "not group readable". */ + cache_dir_group_readable = 0; + } if (check_and_create_data_directory(running_tor /* create */, options->CacheDirectory, - options->CacheDirectoryGroupReadable, + cache_dir_group_readable, options->User, msg) < 0) { goto done; |