[tor-commits] [tor/master] Accept non-space whitespace characters in log severity syntax.
nickm at torproject.org
nickm at torproject.org
Mon Dec 12 14:47:06 UTC 2016
commit 9b2b799d82e00286145d42b9c59cb4f820e4f8c7
Author: J. Ryan Stinnett <jryans at gmail.com>
Date: Sun Dec 4 22:26:52 2016 -0600
Accept non-space whitespace characters in log severity syntax.
Adds a test_config_parse_log_severity unit test to verify behavior.
Fixes #19965.
---
changes/19965 | 3 +++
src/common/log.c | 4 +---
src/test/test_config.c | 29 ++++++++++++++++++++++++++++-
3 files changed, 32 insertions(+), 4 deletions(-)
diff --git a/changes/19965 b/changes/19965
new file mode 100644
index 0000000..904f5c9
--- /dev/null
+++ b/changes/19965
@@ -0,0 +1,3 @@
+ o Minor bugfix (configuration):
+ - Accept non-space whitespace characters after the severity level in the
+ `Log` option. Fixes bug 19965; bugfix on 0.2.1.1-alpha.
diff --git a/src/common/log.c b/src/common/log.c
index 3b0eb88..1c592c6 100644
--- a/src/common/log.c
+++ b/src/common/log.c
@@ -1319,10 +1319,8 @@ parse_log_severity_config(const char **cfg_ptr,
if (got_an_unqualified_range > 1)
return -1;
- space = strchr(cfg, ' ');
+ space = find_whitespace(cfg);
dash = strchr(cfg, '-');
- if (!space)
- space = strchr(cfg, '\0');
if (dash && dash < space) {
sev_lo = tor_strndup(cfg, dash-cfg);
sev_hi = tor_strndup(dash+1, space-(dash+1));
diff --git a/src/test/test_config.c b/src/test/test_config.c
index 2fc37b0..bf2beb8 100644
--- a/src/test/test_config.c
+++ b/src/test/test_config.c
@@ -4890,6 +4890,33 @@ test_config_parse_port_config__ports__server_options(void *data)
config_free_lines(config_port_valid); config_port_valid = NULL;
}
+static void
+test_config_parse_log_severity(void *data)
+{
+ int ret;
+ const char *severity_log_lines[] = {
+ "debug file /tmp/debug.log",
+ "debug\tfile /tmp/debug.log",
+ "[handshake]debug [~net,~mm]info notice stdout",
+ "[handshake]debug\t[~net,~mm]info\tnotice\tstdout",
+ NULL
+ };
+ int i;
+ log_severity_list_t *severity;
+
+ (void) data;
+
+ severity = tor_malloc(sizeof(log_severity_list_t));
+ for (i = 0; severity_log_lines[i]; i++) {
+ memset(severity, 0, sizeof(log_severity_list_t));
+ ret = parse_log_severity_config(&severity_log_lines[i], severity);
+ tt_int_op(ret, OP_EQ, 0);
+ }
+
+ done:
+ tor_free(severity);
+}
+
#define CONFIG_TEST(name, flags) \
{ #name, test_config_ ## name, flags, NULL, NULL }
@@ -4916,6 +4943,6 @@ struct testcase_t config_tests[] = {
CONFIG_TEST(parse_port_config__ports__no_ports_given, 0),
CONFIG_TEST(parse_port_config__ports__server_options, 0),
CONFIG_TEST(parse_port_config__ports__ports_given, 0),
+ CONFIG_TEST(parse_log_severity, 0),
END_OF_TESTCASES
};
-
More information about the tor-commits
mailing list