]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix #4191: NXDOMAIN vs SERVFAIL during dns64 PTR query.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 25 Oct 2018 07:45:00 +0000 (07:45 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 25 Oct 2018 07:45:00 +0000 (07:45 +0000)
git-svn-id: file:///svn/unbound/trunk@4947 be551aaa-1e26-0410-a405-d3ace91eadb9

dns64/dns64.c
doc/Changelog

index eadfabb08c893c9965e3c3e530d403f445100bf6..51e7437e63b949b6ec1b1cf91ea71df021e25752 100644 (file)
@@ -867,9 +867,10 @@ dns64_adjust_ptr(struct module_qstate* qstate, struct module_qstate* super)
      * initial query's domain name.
      */
     answer = reply_find_answer_rrset(&qstate->qinfo, super->return_msg->rep);
-    log_assert(answer);
-    answer->rk.dname = super->qinfo.qname;
-    answer->rk.dname_len = super->qinfo.qname_len;
+    if(answer) {
+           answer->rk.dname = super->qinfo.qname;
+           answer->rk.dname_len = super->qinfo.qname_len;
+    }
 }
 
 /**
@@ -895,17 +896,16 @@ dns64_inform_super(struct module_qstate* qstate, int id,
         */
        super->minfo[id] = (void*)DNS64_SUBQUERY_FINISHED;
 
+       /* Use return code from A query in response to client. */
+       if (super->return_rcode != LDNS_RCODE_NOERROR)
+               super->return_rcode = qstate->return_rcode;
+
        /* If there is no successful answer, we're done. */
        if (qstate->return_rcode != LDNS_RCODE_NOERROR
            || !qstate->return_msg
-           || !qstate->return_msg->rep
-           || !reply_find_answer_rrset(&qstate->qinfo,
-                                       qstate->return_msg->rep))
+           || !qstate->return_msg->rep) {
                return;
-
-       /* Use return code from A query in response to client. */
-       if (super->return_rcode != LDNS_RCODE_NOERROR)
-               super->return_rcode = qstate->return_rcode;
+       }
 
        /* Generate a response suitable for the original query. */
        if (qstate->qinfo.qtype == LDNS_RR_TYPE_A) {
index 51070c414e09dd1b064970cce2ce4716d75c4458..376108232f351ce7b650e753ed6b1b75c164da95 100644 (file)
@@ -1,3 +1,6 @@
+25 October 2018: Wouter
+       - Fix #4191: NXDOMAIN vs SERVFAIL during dns64 PTR query.
+
 24 October 2018: Ralph
        - Add markdel function to ECS slabhash.
        - Limit ECS scope returned to client to the scope used for caching.