Author: gonzo
Date: Mon Jun 22 23:13:14 2020
New Revision: 362516
URL: https://svnweb.freebsd.org/changeset/base/362516

Log:
  Fix crash in drill(1) when IP has two subsequent dots
  
  Cherry-pick crash fix from the upstream repo
  
  PR:           226575
  Reported by:  Goran Mekić <[email protected]>
  Obtained from:        https://git.nlnetlabs.nl/ldns/commit/?id=98291475
  MFC after:    2 weeks

Modified:
  head/contrib/ldns/drill/drill.c

Modified: head/contrib/ldns/drill/drill.c
==============================================================================
--- head/contrib/ldns/drill/drill.c     Mon Jun 22 22:59:03 2020        
(r362515)
+++ head/contrib/ldns/drill/drill.c     Mon Jun 22 23:13:14 2020        
(r362516)
@@ -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");
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to