From: Nick Mathewson Date: Wed, 14 Jan 2015 19:15:29 +0000 (-0500) Subject: Merge remote-tracking branch 'public/bug13397' X-Git-Tag: tor-0.2.6.3-alpha~153 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3668a4126e0c2502a77c2ba5d7885add489a964a;p=thirdparty%2Ftor.git Merge remote-tracking branch 'public/bug13397' --- 3668a4126e0c2502a77c2ba5d7885add489a964a diff --cc src/or/config.c index 5db065f000,cf42f30f7a..982cb2e9e5 --- a/src/or/config.c +++ b/src/or/config.c @@@ -4221,17 -4147,19 +4216,20 @@@ load_torrc_from_disk(config_line_t *cmd int ignore_missing_torrc = 0; char **fname_var = defaults_file ? &torrc_defaults_fname : &torrc_fname; - fname = find_torrc_filename(cmd_arg, defaults_file, - &using_default_torrc, &ignore_missing_torrc); - tor_assert(fname); + if (*fname_var == NULL) { + fname = find_torrc_filename(cmd_arg, defaults_file, + &using_default_torrc, &ignore_missing_torrc); + tor_assert(fname); + tor_free(*fname_var); + *fname_var = fname; + } else { + fname = *fname_var; + } log_debug(LD_CONFIG, "Opening config file \"%s\"", fname); - tor_free(*fname_var); - *fname_var = fname; - /* Open config file */ - if (file_status(fname) != FN_FILE || + file_status_t st = file_status(fname); + if (!(st == FN_FILE || st == FN_EMPTY) || !(cf = read_file_to_str(fname,0,NULL))) { if (using_default_torrc == 1 || ignore_missing_torrc) { if (!defaults_file)