diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-02-07 10:37:43 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-02-07 10:37:43 -0500 |
commit | 2ce43302490ac916be4188bff70f70958aee1790 (patch) | |
tree | e60c34986dc5949770f8961a9d1c6d6394cd18ac | |
parent | c056d19323e499a0003ba9de0db2bdee9c301872 (diff) | |
parent | 0ca3f495c6fad074606ab75942b64738ed61926a (diff) | |
download | tor-2ce43302490ac916be4188bff70f70958aee1790.tar.gz tor-2ce43302490ac916be4188bff70f70958aee1790.zip |
Merge remote-tracking branch 'public/bug18710_025' into maint-0.2.5
-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 ecd45be77c..9b0368dd09 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; |