From 3a2cb83685e03b861abc1ebd54779c1244a26217 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Sun, 4 Nov 2018 07:30:46 -0500 Subject: [PATCH] refuse to start with relative paths + RunAsDaemon Resume refusing to start with relative file paths and RunAsDaemon set (regression from the fix for bug 22731). Fixes bug 28298; bugfix on 0.3.3.1-alpha. --- changes/bug28298 | 4 ++++ src/or/config.c | 14 ++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 changes/bug28298 diff --git a/changes/bug28298 b/changes/bug28298 new file mode 100644 index 0000000000..8db340f3df --- /dev/null +++ b/changes/bug28298 @@ -0,0 +1,4 @@ + o Minor bugfixes (configuration): + - Resume refusing to start with relative file paths and RunAsDaemon + set (regression from the fix for bug 22731). Fixes bug 28298; + bugfix on 0.3.3.1-alpha. diff --git a/src/or/config.c b/src/or/config.c index 58080c65e3..783412acc4 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -3307,12 +3307,6 @@ options_validate(or_options_t *old_options, or_options_t *options, * Always use the value of UseEntryGuards, not UseEntryGuards_option. */ options->UseEntryGuards = options->UseEntryGuards_option; - if (warn_about_relative_paths(options) && options->RunAsDaemon) { - REJECT("You have specified at least one relative path (see above) " - "with the RunAsDaemon option. RunAsDaemon is not compatible " - "with relative paths."); - } - if (server_mode(options) && (!strcmpstart(uname, "Windows 95") || !strcmpstart(uname, "Windows 98") || @@ -3329,6 +3323,14 @@ options_validate(or_options_t *old_options, or_options_t *options, if (validate_data_directories(options)<0) REJECT("Invalid DataDirectory"); + /* need to check for relative paths after we populate + * options->DataDirectory (just above). */ + if (warn_about_relative_paths(options) && options->RunAsDaemon) { + REJECT("You have specified at least one relative path (see above) " + "with the RunAsDaemon option. RunAsDaemon is not compatible " + "with relative paths."); + } + if (options->Nickname == NULL) { if (server_mode(options)) { options->Nickname = tor_strdup(UNNAMED_ROUTER_NICKNAME);