Author: gonzo
Date: Tue Jul 14 05:24:07 2020
New Revision: 363175
URL: https://svnweb.freebsd.org/changeset/base/363175

Log:
  MFC r362516:
  
  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ć <meka@tilda.center>
  Obtained from:        https://git.nlnetlabs.nl/ldns/commit/?id=98291475

Modified:
  stable/12/contrib/ldns/drill/drill.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/contrib/ldns/drill/drill.c
==============================================================================
--- stable/12/contrib/ldns/drill/drill.c        Tue Jul 14 05:10:50 2020        
(r363174)
+++ stable/12/contrib/ldns/drill/drill.c        Tue Jul 14 05:24:07 2020        
(r363175)
@@ -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");
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to