diff options
author | Ulf Lamping <ulf.lamping@web.de> | 2005-06-04 11:47:38 +0000 |
---|---|---|
committer | Ulf Lamping <ulf.lamping@web.de> | 2005-06-04 11:47:38 +0000 |
commit | b59c893573a2413df189c92f5bbe185c32ae4024 (patch) | |
tree | 920255bdedb6081be5fc6234043ee52b1cdc218f /epan/dissectors/packet-dns.c | |
parent | aac3bce7175c52b40f34bbe764a215769807efec (diff) |
fix #201 second part: adapt the string length of the unformatted text, so it won't show \000 and beyond
svn path=/trunk/; revision=14550
Diffstat (limited to 'epan/dissectors/packet-dns.c')
-rw-r--r-- | epan/dissectors/packet-dns.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/epan/dissectors/packet-dns.c b/epan/dissectors/packet-dns.c index e2e730c759..d2737c0408 100644 --- a/epan/dissectors/packet-dns.c +++ b/epan/dissectors/packet-dns.c @@ -750,6 +750,7 @@ dissect_dns_query(tvbuff_t *tvb, int offset, int dns_data_offset, int len; char name[MAXDNAME]; char *name_out; + int name_out_len; int name_len; int type; int class; @@ -767,12 +768,16 @@ dissect_dns_query(tvbuff_t *tvb, int offset, int dns_data_offset, type_name = dns_type_name(type); + /* the name might contain non-printable characters, format it first */ + /* the actual name to display will be smaller than the name_len */ + /* XXX - is the name guaranteed to be a valid string or might strlen() fail? */ + name_out_len = (name_len <= (int) strlen(name)) ? name_len : strlen(name); + name_out = format_text(name, name_out_len); + if (cinfo != NULL) { - name_out = format_text(name, name_len); col_append_fstr(cinfo, COL_INFO, " %s %s", type_name, name_out); } if (dns_tree != NULL) { - name_out = format_text(name, name_len); tq = proto_tree_add_text(dns_tree, tvb, offset, len, "%s: type %s, class %s", name_out, type_name, dns_class_name(class)); q_tree = proto_item_add_subtree(tq, ett_dns_qd); |