[tor-commits] [tor/master] Remove call to get_unquoted_path in config_process_include()

nickm at torproject.org nickm at torproject.org
Fri May 19 18:10:43 UTC 2017


commit d950ad0dfdf786639628f95e750121dc772ebb67
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri May 19 14:09:51 2017 -0400

    Remove call to get_unquoted_path in config_process_include()
    
    parse_config_line_from_str_verbose() already looks for strings
    that are surrounded by quotes, and processes them with
    unescape_string().  So things were getting decoded twice, which was
    (in turn) playing havoc with backslashes on Windows.
---
 src/common/confline.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/common/confline.c b/src/common/confline.c
index e078b1d..f04b7a8 100644
--- a/src/common/confline.c
+++ b/src/common/confline.c
@@ -270,6 +270,8 @@ static int
 config_process_include(const char *path, int recursion_level, int extended,
                        config_line_t ***next, config_line_t **list_last)
 {
+#if 0
+  // Disabled -- we already unescape_string() on the result. */
   char *unquoted_path = get_unquoted_path(path);
   if (!unquoted_path) {
     return -1;
@@ -281,6 +283,11 @@ config_process_include(const char *path, int recursion_level, int extended,
     return -1;
   }
   tor_free(unquoted_path);
+#endif
+  smartlist_t *config_files = config_get_file_list(path);
+  if (!config_files) {
+    return -1;
+  }
 
   SMARTLIST_FOREACH_BEGIN(config_files, char *, config_file) {
     config_line_t *included_list = NULL;



More information about the tor-commits mailing list