]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
fixed segfault when printing packet with EDNS but with unknown or no EDNS flags
authorJelte Jansen <jeltejan@NLnetLabs.nl>
Wed, 12 Oct 2005 12:27:26 +0000 (12:27 +0000)
committerJelte Jansen <jeltejan@NLnetLabs.nl>
Wed, 12 Oct 2005 12:27:26 +0000 (12:27 +0000)
host2str.c

index f1abd8eefcb48c253c96d4cd01ec2b9f90ff163e..87774a3b91b5ac0ef8aadb25b931d6be0a0552b6 100644 (file)
@@ -974,12 +974,21 @@ ldns_pkt2buffer_str(ldns_buffer *output, ldns_pkt *pkt)
                        lt = ldns_lookup_by_id(ldns_edns_flags, 
                                        (int)ldns_pkt_edns_z(pkt));
                        
-                       ldns_buffer_printf(output,
-                                          ";; EDNS: version %u, flags: %s; udp: %u\n",
-                                          ldns_pkt_edns_version(pkt),
-                                          lt->name,
-                                          ldns_pkt_edns_udp_size(pkt)
-                                          );
+                       if (lt) {
+                               ldns_buffer_printf(output,
+                                                  ";; EDNS: version %u; flags: %s; udp: %u\n",
+                                                  ldns_pkt_edns_version(pkt),
+                                                  lt->name,
+                                                  ldns_pkt_edns_udp_size(pkt)
+                                                  );
+                       } else {
+                               ldns_buffer_printf(output,
+                                                  ";; EDNS: version %u; flags: ; udp: %u\n",
+                                                  ldns_pkt_edns_version(pkt),
+                                                  ldns_pkt_edns_udp_size(pkt)
+                                                  );
+                       }
+                       
                        if (ldns_pkt_edns_data(pkt)) {
                                ldns_buffer_printf(output, ";; Data: ");
                                (void)ldns_rdf2buffer_str(output, ldns_pkt_edns_data(pkt));