]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix #1414: fix segfault on parse failure and log_replies.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 29 Aug 2017 07:28:29 +0000 (07:28 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Tue, 29 Aug 2017 07:28:29 +0000 (07:28 +0000)
git-svn-id: file:///svn/unbound/trunk@4316 be551aaa-1e26-0410-a405-d3ace91eadb9

daemon/worker.c
doc/Changelog
util/data/msgreply.c

index 38b3d1873a1b9529d1e731ae85379476db68efd9..a601a816f57b7006fd6b25b7db88038684d4977c 100644 (file)
@@ -1111,6 +1111,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
        if(!query_info_parse(&qinfo, c->buffer)) {
                verbose(VERB_ALGO, "worker parse request: formerror.");
                log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+               memset(&qinfo, 0, sizeof(qinfo)); /* zero qinfo.qname */
                if(worker_err_ratelimit(worker, LDNS_RCODE_FORMERR) == -1) {
                        comm_point_drop_reply(repinfo);
                        return 0;
index 1333c8387373b3b76ccaab42a19ecb29b37aad6b..f37104e557cc62380143b71a61a9268921d36812 100644 (file)
@@ -1,3 +1,6 @@
+29 August 2017: Wouter
+       - Fix #1414: fix segfault on parse failure and log_replies.
+
 28 August 2017: Wouter
        - Fix #1415: patch to free dnscrypt environment on reload.
        - iana portlist update
index 2ce898d7f031467e4727cd14ed83b36c72cf0f8c..6d80cce4cb500d55460dcb04c4f53c79b1b34c6e 100644 (file)
@@ -840,7 +840,9 @@ log_reply_info(enum verbosity_value v, struct query_info *qinf,
        {
                log_info("%s - - - %s - - - ", clientip_buf, rcode_buf);
        } else {
-               dname_str(qinf->qname, qname_buf);
+               if(qinf->qname)
+                       dname_str(qinf->qname, qname_buf);
+               else    snprintf(qname_buf, sizeof(qname_buf), "null");
                pktlen = sldns_buffer_limit(rmsg);
                sldns_wire2str_type_buf(qinf->qtype, type_buf, sizeof(type_buf));
                sldns_wire2str_class_buf(qinf->qclass, class_buf, sizeof(class_buf));