diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-02-07 10:39:54 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-02-07 10:39:54 -0500 |
commit | 26ea56a6c2deaadd3031e9efde928a28120c1647 (patch) | |
tree | 4986997db78c615135835413688dce2359d00f55 | |
parent | 6cfbaed3a59b4568a1d922df15f041a18789058e (diff) | |
parent | 4bce2072acaca38d40086c943d8f332ed2c2cf50 (diff) | |
download | tor-26ea56a6c2deaadd3031e9efde928a28120c1647.tar.gz tor-26ea56a6c2deaadd3031e9efde928a28120c1647.zip |
Merge branch 'maint-0.2.7' into release-0.2.7
-rw-r--r-- | changes/bug18710 | 6 | ||||
-rw-r--r-- | src/or/dnsserv.c | 4 |
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; |