From: Willem Toorop Date: Thu, 17 Jan 2019 10:39:06 +0000 (+0100) Subject: Fix #4221 drill -x crashes with malformed IPv4 X-Git-Tag: release-1.7.1-rc1~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9829147582f66ab78b2035c1485c16cebe897477;p=thirdparty%2Fldns.git Fix #4221 drill -x crashes with malformed IPv4 Thanks Oleksandr Tymoshenko --- diff --git a/Changelog b/Changelog index 7b229712..68231448 100644 --- a/Changelog +++ b/Changelog @@ -1,4 +1,6 @@ 1.7.1 ????-??-?? + * bugfix #4221: drill -x crashes with malformed IPv4 address + Tahnks Oleksandr Tymoshenko * bugfix #3437: CDS & CDNSKEY RRsets should be signed with the KSK Thanks Tony Finch * bugfix #1566, #1568, #1569, #1570: Potential NULL Dereferences diff --git a/drill/drill.c b/drill/drill.c index 3a9482b3..d66ee862 100644 --- a/drill/drill.c +++ b/drill/drill.c @@ -787,15 +787,17 @@ main(int argc, char *argv[]) qname = ldns_dname_new_frm_str(ip6_arpa_str); } else { qname = ldns_dname_new_frm_str(name); - qname_tmp = ldns_dname_reverse(qname); - ldns_rdf_deep_free(qname); - qname = qname_tmp; - qname_tmp = ldns_dname_new_frm_str("in-addr.arpa."); - status = ldns_dname_cat(qname, qname_tmp); - if (status != LDNS_STATUS_OK) { - error("%s", "could not create reverse address for ip4: %s\n", ldns_get_errorstr_by_id(status)); + if (qname) { + qname_tmp = ldns_dname_reverse(qname); + ldns_rdf_deep_free(qname); + qname = qname_tmp; + qname_tmp = ldns_dname_new_frm_str("in-addr.arpa."); + status = ldns_dname_cat(qname, qname_tmp); + if (status != LDNS_STATUS_OK) { + error("%s", "could not create reverse address for ip4: %s\n", ldns_get_errorstr_by_id(status)); + } + ldns_rdf_deep_free(qname_tmp); } - ldns_rdf_deep_free(qname_tmp); } if (!qname) { error("%s", "-x implies an ip address");