aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-02-07 10:39:54 -0500
committerNick Mathewson <nickm@torproject.org>2017-02-07 10:39:54 -0500
commit26ea56a6c2deaadd3031e9efde928a28120c1647 (patch)
tree4986997db78c615135835413688dce2359d00f55
parent6cfbaed3a59b4568a1d922df15f041a18789058e (diff)
parent4bce2072acaca38d40086c943d8f332ed2c2cf50 (diff)
downloadtor-26ea56a6c2deaadd3031e9efde928a28120c1647.tar.gz
tor-26ea56a6c2deaadd3031e9efde928a28120c1647.zip
Merge branch 'maint-0.2.7' into release-0.2.7
-rw-r--r--changes/bug187106
-rw-r--r--src/or/dnsserv.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/changes/bug18710 b/changes/bug18710
new file mode 100644
index 0000000000..269395563d
--- /dev/null
+++ b/changes/bug18710
@@ -0,0 +1,6 @@
+ o Major bugfixes (DNS proxy):
+ - Stop a crash that could occur when a client running with DNSPort
+ received a query with multiple address types, where the first
+ address type was not supported. Found and fixed by Scott Dial.
+ Fixes bug 18710; bugfix on 0.2.5.4-alpha.
+
diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c
index f7710908bd..f3618cc2c5 100644
--- a/src/or/dnsserv.c
+++ b/src/or/dnsserv.c
@@ -87,8 +87,6 @@ evdns_server_callback(struct evdns_server_request *req, void *data_)
for (i = 0; i < req->nquestions; ++i) {
if (req->questions[i]->dns_question_class != EVDNS_CLASS_INET)
continue;
- if (! q)
- q = req->questions[i];
switch (req->questions[i]->type) {
case EVDNS_TYPE_A:
case EVDNS_TYPE_AAAA:
@@ -96,7 +94,7 @@ evdns_server_callback(struct evdns_server_request *req, void *data_)
/* We always pick the first one of these questions, if there is
one. */
if (! supported_q)
- supported_q = q;
+ supported_q = req->questions[i];
break;
default:
break;