From 1624efa93937ff95afb2c29c63362dd4b1e2cc26 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 29 Aug 2017 07:28:29 +0000 Subject: [PATCH] - Fix #1414: fix segfault on parse failure and log_replies. git-svn-id: file:///svn/unbound/trunk@4316 be551aaa-1e26-0410-a405-d3ace91eadb9 --- daemon/worker.c | 1 + doc/Changelog | 3 +++ util/data/msgreply.c | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/daemon/worker.c b/daemon/worker.c index 38b3d1873..a601a816f 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -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; diff --git a/doc/Changelog b/doc/Changelog index 1333c8387..f37104e55 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -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 diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 2ce898d7f..6d80cce4c 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -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));