[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] Try another approach to fixing the bug in the #1922 test.
commit 13034e1574bf5ee8c7bacba2c1c19a4a8adc8de8
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date: Fri May 19 15:50:27 2017 -0400
Try another approach to fixing the bug in the #1922 test.
This isn't elegant, but it seems to be the best way around all of
the issues involved in escaping and quoting that we've gotten into
over the years.
---
src/test/test_config.c | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/src/test/test_config.c b/src/test/test_config.c
index 80579ea..eaf7e0d 100644
--- a/src/test/test_config.c
+++ b/src/test/test_config.c
@@ -5164,6 +5164,8 @@ test_config_include_path_syntax(void *data)
config_line_t *result = NULL;
char *dir = tor_strdup(get_fname("test_include_path_syntax"));
+ char *esc_dir = NULL, *dir_with_pathsep = NULL,
+ *esc_dir_with_pathsep = NULL, *torrc_contents = NULL;
tt_ptr_op(dir, OP_NE, NULL);
#ifdef _WIN32
@@ -5172,18 +5174,18 @@ test_config_include_path_syntax(void *data)
tt_int_op(mkdir(dir, 0700), OP_EQ, 0);
#endif
-#ifdef _WIN32
-#define ESCAPED_PATH_SEPARATOR "\\" PATH_SEPARATOR
-#else
-#define ESCAPED_PATH_SEPARATOR PATH_SEPARATOR
-#endif
- char torrc_contents[1000];
- tor_snprintf(torrc_contents, sizeof(torrc_contents),
- "%%include \"%s\"\n"
- "%%include %s"PATH_SEPARATOR"\n"
- "%%include \"%s"ESCAPED_PATH_SEPARATOR"\"\n",
- dir, dir, dir);
+ esc_dir = esc_for_log(dir);
+ tor_asprintf(&dir_with_pathsep, "%s%s", dir, PATH_SEPARATOR);
+ esc_dir_with_pathsep = esc_for_log(dir_with_pathsep);
+
+ tor_asprintf(&torrc_contents,
+ "%%include %s\n"
+ "%%include %s%s \n" // space to avoid suppressing newline
+ "%%include %s\n",
+ esc_dir,
+ dir, PATH_SEPARATOR,
+ esc_dir_with_pathsep);
int include_used;
tt_int_op(config_get_lines_include(torrc_contents, &result, 0,&include_used),
@@ -5194,6 +5196,10 @@ test_config_include_path_syntax(void *data)
done:
config_free_lines(result);
tor_free(dir);
+ tor_free(torrc_contents);
+ tor_free(esc_dir);
+ tor_free(dir_with_pathsep);
+ tor_free(esc_dir_with_pathsep);
}
static void
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits