Commit 0ca3f495 authored by Scott Dial's avatar Scott Dial Committed by Nick Mathewson
Browse files

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
parent 34a51d16
Loading
Loading
Loading
Loading

changes/bug18710

0 → 100644
+6 −0
Original line number Diff line number Diff line
  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.
+1 −3
Original line number Diff line number Diff line
@@ -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;