aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorteor <teor@torproject.org>2019-08-12 09:52:56 +1000
committerteor <teor@torproject.org>2019-08-12 09:52:56 +1000
commit789fdbed0586aeec5b312195a453c9ddaf8d58be (patch)
tree74468ed158b8594e110ae2445b84be19dab04409 /src
parenta92b05392e2e88357b0e2a1c31cfdb7e94406838 (diff)
parent3c3158f1826826d9b4e8841bc67855cca0fc883b (diff)
downloadtor-789fdbed0586aeec5b312195a453c9ddaf8d58be.tar.gz
tor-789fdbed0586aeec5b312195a453c9ddaf8d58be.zip
Merge remote-tracking branch 'tor-github/pr/1065' into maint-0.3.5
Diffstat (limited to 'src')
-rw-r--r--src/app/config/config.c2
-rw-r--r--src/test/test_config.c12
2 files changed, 6 insertions, 8 deletions
diff --git a/src/app/config/config.c b/src/app/config/config.c
index 7ccd76e7f0..68493e847d 100644
--- a/src/app/config/config.c
+++ b/src/app/config/config.c
@@ -7093,7 +7093,7 @@ parse_port_config(smartlist_t *out,
if (!strcasecmpstart(elt, "SessionGroup=")) {
int group = (int)tor_parse_long(elt+strlen("SessionGroup="),
10, 0, INT_MAX, &ok, NULL);
- if (!ok || !allow_no_stream_options) {
+ if (!ok || allow_no_stream_options) {
log_warn(LD_CONFIG, "Invalid %sPort option '%s'",
portname, escaped(elt));
goto err;
diff --git a/src/test/test_config.c b/src/test/test_config.c
index c342d8cca4..0de6b12919 100644
--- a/src/test/test_config.c
+++ b/src/test/test_config.c
@@ -4568,16 +4568,14 @@ test_config_parse_port_config__ports__ports_given(void *data)
"127.0.0.44", 0, CL_PORT_NO_STREAM_OPTIONS);
tt_int_op(ret, OP_EQ, -1);
- // TODO: this seems wrong. Shouldn't it be the other way around?
- // Potential bug.
- // Test failure for a SessionGroup argument with valid value but with stream
- // options allowed
+ // Test failure for a SessionGroup argument with valid value but with no
+ // stream options allowed
config_free_lines(config_port_invalid); config_port_invalid = NULL;
SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "42 SessionGroup=123");
ret = parse_port_config(slout, config_port_invalid, "DNS", 0,
- "127.0.0.44", 0, 0);
+ "127.0.0.44", 0, CL_PORT_NO_STREAM_OPTIONS);
tt_int_op(ret, OP_EQ, -1);
// Test failure for more than one SessionGroup argument
@@ -4587,7 +4585,7 @@ test_config_parse_port_config__ports__ports_given(void *data)
config_port_invalid = mock_config_line("DNSPort", "42 SessionGroup=123 "
"SessionGroup=321");
ret = parse_port_config(slout, config_port_invalid, "DNS", 0,
- "127.0.0.44", 0, CL_PORT_NO_STREAM_OPTIONS);
+ "127.0.0.44", 0, 0);
tt_int_op(ret, OP_EQ, -1);
// Test success with a sessiongroup options
@@ -4596,7 +4594,7 @@ test_config_parse_port_config__ports__ports_given(void *data)
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 SessionGroup=1111122");
ret = parse_port_config(slout, config_port_valid, "DNS", 0,
- "127.0.0.44", 0, CL_PORT_NO_STREAM_OPTIONS);
+ "127.0.0.44", 0, 0);
tt_int_op(ret, OP_EQ, 0);
tt_int_op(smartlist_len(slout), OP_EQ, 1);
port_cfg = (port_cfg_t *)smartlist_get(slout, 0);