mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Fix dnsserv.c assertion when no supported questions are requested.
The problem is that "q" is always set on the first iteration even if the question is not a supported question. This set of "q" is not necessary, and will be handled after exiting the loop if there if a supported q->type was found. [Changes file by nickm] lease enter the commit message for your changes. Lines starting
This commit is contained in:
parent
34a51d1621
commit
0ca3f495c6
6
changes/bug18710
Normal file
6
changes/bug18710
Normal file
@ -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.
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user