aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>2008-12-19 17:39:52 +0000
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>2008-12-19 17:39:52 +0000
commit4a1aa4a214410eb8a5f529961d69bf18cbc770aa (patch)
tree647f2501114c1f15b0c01fc84cbb6cdad96a3580 /epan
parent3af7385e48e13cde8ca001915e4a9578872b3400 (diff)
Back out r27047 and r27053.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@27062 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-arp.c2
-rw-r--r--epan/dissectors/packet-clnp.c2
-rw-r--r--epan/dissectors/packet-dcm.c18
-rw-r--r--epan/dissectors/packet-dcp-etsi.c5
-rw-r--r--epan/dissectors/packet-diameter.c1
-rw-r--r--epan/dissectors/packet-dtls.c5
-rw-r--r--epan/dissectors/packet-fcswils.c5
-rw-r--r--epan/dissectors/packet-ieee80211.c5
-rw-r--r--epan/dissectors/packet-isakmp.c3
-rw-r--r--epan/dissectors/packet-isis-hello.c6
-rw-r--r--epan/dissectors/packet-ismp.c6
-rw-r--r--epan/dissectors/packet-mip.c2
-rw-r--r--epan/dissectors/packet-mip6.c2
-rw-r--r--epan/dissectors/packet-mpls-echo.c4
-rw-r--r--epan/dissectors/packet-ntp.c5
-rw-r--r--epan/dissectors/packet-olsr.c76
-rw-r--r--epan/dissectors/packet-p_mul.c1
-rw-r--r--epan/dissectors/packet-pana.c1
-rw-r--r--epan/dissectors/packet-pgm.c8
-rw-r--r--epan/dissectors/packet-pvfs2.c1
-rw-r--r--epan/dissectors/packet-rpc.c1
-rw-r--r--epan/dissectors/packet-rtp.c2
-rw-r--r--epan/dissectors/packet-smb-pipe.c2
-rw-r--r--epan/dissectors/packet-smb.c3
-rw-r--r--epan/dissectors/packet-ssl.c2
-rw-r--r--epan/dissectors/packet-tcp.c3
-rw-r--r--epan/dissectors/packet-wol.c2
-rw-r--r--epan/dissectors/packet-x11.c2
-rw-r--r--epan/proto.c16
-rw-r--r--epan/proto.h2
30 files changed, 114 insertions, 79 deletions
diff --git a/epan/dissectors/packet-arp.c b/epan/dissectors/packet-arp.c
index 4b25a350f9..f548761817 100644
--- a/epan/dissectors/packet-arp.c
+++ b/epan/dissectors/packet-arp.c
@@ -809,6 +809,7 @@ dissect_atmarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (ar_ssl != 0)
proto_tree_add_bytes_format(arp_tree, hf_atmarp_src_atm_subaddr, tvb, ssa_offset,
ar_ssl,
+ ssa_val,
"Sender ATM subaddress: %s", ssa_str);
if (ar_spln != 0) {
@@ -825,6 +826,7 @@ dissect_atmarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (ar_tsl != 0)
proto_tree_add_bytes_format(arp_tree, hf_atmarp_dst_atm_subaddr, tvb, tsa_offset,
ar_tsl,
+ tsa_val,
"Target ATM subaddress: %s", tsa_str);
if (ar_tpln != 0) {
diff --git a/epan/dissectors/packet-clnp.c b/epan/dissectors/packet-clnp.c
index e457400ffa..93f6083edd 100644
--- a/epan/dissectors/packet-clnp.c
+++ b/epan/dissectors/packet-clnp.c
@@ -374,12 +374,14 @@ static void dissect_clnp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_uint(clnp_tree, hf_clnp_dest_length, tvb, offset, 1,
dst_len);
proto_tree_add_bytes_format(clnp_tree, hf_clnp_dest, tvb, offset + 1 , dst_len,
+ dst_addr,
" DA : %s",
print_nsap_net(dst_addr, dst_len));
proto_tree_add_uint(clnp_tree, hf_clnp_src_length, tvb,
offset + 1 + dst_len, 1, src_len);
proto_tree_add_bytes_format(clnp_tree, hf_clnp_src, tvb,
offset + dst_len + 2, src_len,
+ src_addr,
" SA : %s",
print_nsap_net(src_addr, src_len));
diff --git a/epan/dissectors/packet-dcm.c b/epan/dissectors/packet-dcm.c
index b5b8a18b74..a2bbec038e 100644
--- a/epan/dissectors/packet-dcm.c
+++ b/epan/dissectors/packet-dcm.c
@@ -5119,7 +5119,7 @@ dissect_dcm_tag_value(tvbuff_t *tvb, proto_tree *tree, dcm_state_pdv_t *pdv,
valb = tvb_get_ptr(tvb, offset, vl_max);
proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, vl_max,
- "%-8.8s%s", "Value:", "(binary)");
+ valb, "%-8.8s%s", "Value:", "(binary)");
g_snprintf(*tag_value, MAX_BUF_LEN, "(binary)");
}
@@ -5163,7 +5163,7 @@ dissect_dcm_tag_value(tvbuff_t *tvb, proto_tree *tree, dcm_state_pdv_t *pdv,
else {
valb = tvb_get_ptr(tvb, offset, vl_max);
proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, vl_max,
- "%-8.8s%s", "Value:", "(binary)");
+ valb, "%-8.8s%s", "Value:", "(binary)");
g_snprintf(*tag_value, MAX_BUF_LEN, "(binary)");
}
@@ -5200,7 +5200,7 @@ dissect_dcm_tag_value(tvbuff_t *tvb, proto_tree *tree, dcm_state_pdv_t *pdv,
else valf = tvb_get_ntohieee_float(tvb, offset);
proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, 4,
- "%-8.8s%f", "Value:", valf);
+ valb, "%-8.8s%f", "Value:", valf);
g_snprintf(*tag_value, MAX_BUF_LEN, "%f", valf);
}
@@ -5216,7 +5216,7 @@ dissect_dcm_tag_value(tvbuff_t *tvb, proto_tree *tree, dcm_state_pdv_t *pdv,
if (global_dcm_tag_subtree) {
proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, 8,
- "%-8.8s%f", "Value:", vald);
+ valb, "%-8.8s%f", "Value:", vald);
}
g_snprintf(*tag_value, MAX_BUF_LEN, "%f", vald);
}
@@ -5281,7 +5281,7 @@ dissect_dcm_tag_value(tvbuff_t *tvb, proto_tree *tree, dcm_state_pdv_t *pdv,
valb = tvb_get_ptr(tvb, offset, vl_max);
proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, vl_max,
- "%-8.8s%s", "Value:", (vl > vl_max ? "" : "(unknown VR)"));
+ valb, "%-8.8s%s", "Value:", (vl > vl_max ? "" : "(unknown VR)"));
g_snprintf(*tag_value, MAX_BUF_LEN, "(unknown VR)");
}
@@ -5753,7 +5753,7 @@ dissect_dcm_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
valb = tvb_get_ptr(tvb, offset, vl_max);
proto_tree_add_bytes_format(tag_ptree, hf_dcm_tag_value_byte, tvb, offset, vl_max,
- "%-8.8sBytes %d - %d [start]", "Value:", 1, vl_max);
+ valb, "%-8.8sBytes %d - %d [start]", "Value:", 1, vl_max);
g_snprintf(tag_value, MAX_BUF_LEN, "<Bytes %d - %d, start>", 1, vl_max);
offset += vl_max;
@@ -5869,7 +5869,7 @@ dissect_dcm_tag_open(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (pdv->is_corrupt) {
pitem = proto_tree_add_bytes_format(tree, hf_dcm_data_tag, tvb,
- offset, tag_value_fragment_len, "%s <incomplete>",
+ offset, tag_value_fragment_len, val, "%s <incomplete>",
pdv->prev->open_tag.desc);
expert_add_info_format(pinfo, pitem, PI_MALFORMED, PI_ERROR,
@@ -5878,7 +5878,7 @@ dissect_dcm_tag_open(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
else {
proto_tree_add_bytes_format(tree, hf_dcm_data_tag, tvb,
- offset, tag_value_fragment_len, "%s <Bytes %d - %d, %s>",
+ offset, tag_value_fragment_len, val, "%s <Bytes %d - %d, %s>",
pdv->prev->open_tag.desc,
pdv->prev->open_tag.len_total - pdv->prev->open_tag.len_remaining + 1,
pdv->prev->open_tag.len_total - pdv->prev->open_tag.len_remaining + tag_value_fragment_len,
@@ -5920,7 +5920,7 @@ dissect_dcm_pdv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
val = tvb_get_ptr(tvb, offset, len);
proto_tree_add_bytes_format(tree, hf_dcm_data_tag, tvb,
- offset, len, "(%04x,%04x) %-8x Unparsed data", 0, 0, len);
+ offset, len, val, "(%04x,%04x) %-8x Unparsed data", 0, 0, len);
offset = pdv_len;
}
else {
diff --git a/epan/dissectors/packet-dcp-etsi.c b/epan/dissectors/packet-dcp-etsi.c
index 7e6c28b9fb..b1cbff4900 100644
--- a/epan/dissectors/packet-dcp-etsi.c
+++ b/epan/dissectors/packet-dcp-etsi.c
@@ -650,15 +650,16 @@ dissect_tpl(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
bytes++;
if(tree) {
proto_item *i = NULL;
+ const guint8 *p = tvb_get_ptr(tvb, offset, bytes);
if(strcmp(tag, "*ptr")==0) {
prot = (char*)tvb_get_ephemeral_string (tvb, offset, 4);
maj = tvb_get_ntohs(tvb, offset+4);
min = tvb_get_ntohs(tvb, offset+6);
i = proto_tree_add_bytes_format(tpl_tree, hf_tpl_tlv, tvb,
- offset-8, bytes+8, "%s %s rev %d.%d", tag, prot, maj, min);
+ offset-8, bytes+8, p, "%s %s rev %d.%d", tag, prot, maj, min);
} else {
i = proto_tree_add_bytes_format(tpl_tree, hf_tpl_tlv, tvb,
- offset-8, bytes+8, "%s (%u bits)", tag, bits);
+ offset-8, bytes+8, p, "%s (%u bits)", tag, bits);
}
}
offset += bytes;
diff --git a/epan/dissectors/packet-diameter.c b/epan/dissectors/packet-diameter.c
index 7ee804ebc9..f1fdc576b8 100644
--- a/epan/dissectors/packet-diameter.c
+++ b/epan/dissectors/packet-diameter.c
@@ -592,6 +592,7 @@ unsigned32_avp(diam_ctx_t* c, diam_avp_t* a, tvbuff_t* tvb)
else {
pi = proto_tree_add_bytes_format(c->tree, hf_diameter_avp_data_wrong_length,
tvb, 0, length,
+ tvb_get_ptr(tvb, 0, length),
"Error! Bad Integer32 Length");
expert_add_info_format(c->pinfo, pi, PI_MALFORMED, PI_NOTE,
"Bad Integer32 Length (%u)", length);
diff --git a/epan/dissectors/packet-dtls.c b/epan/dissectors/packet-dtls.c
index 5b1dbeba2b..f3d4d1aa82 100644
--- a/epan/dissectors/packet-dtls.c
+++ b/epan/dissectors/packet-dtls.c
@@ -1318,6 +1318,7 @@ dissect_dtls_hnd_hello_common(tvbuff_t *tvb, proto_tree *tree,
tvb_ensure_bytes_exist(tvb, offset, session_id_length);
proto_tree_add_bytes_format(tree, hf_dtls_handshake_session_id,
tvb, offset, session_id_length,
+ tvb_get_ptr(tvb, offset, session_id_length),
"Session ID (%u byte%s)",
session_id_length,
plurality(session_id_length, "", "s"));
@@ -1373,6 +1374,7 @@ dissect_dtls_hnd_hello_ext(tvbuff_t *tvb,
proto_tree_add_bytes_format(ext_tree, hf_dtls_handshake_extension_data,
tvb, offset, ext_len,
+ tvb_get_ptr(tvb, offset, ext_len),
"Data (%u byte%s)",
ext_len, plurality(ext_len, "", "s"));
offset += ext_len;
@@ -1434,6 +1436,7 @@ dissect_dtls_hnd_cli_hello(tvbuff_t *tvb,
tvb_ensure_bytes_exist(tvb, offset, cookie_length);
proto_tree_add_bytes_format(tree, hf_dtls_handshake_cookie,
tvb, offset, cookie_length,
+ tvb_get_ptr(tvb, offset, cookie_length),
"Cookie (%u byte%s)",
cookie_length,
plurality(cookie_length, "", "s"));
@@ -1564,6 +1567,7 @@ static void dissect_dtls_hnd_hello_verify_request(tvbuff_t *tvb,
tvb_ensure_bytes_exist(tvb, offset, cookie_length);
proto_tree_add_bytes_format(tree, hf_dtls_handshake_cookie,
tvb, offset, cookie_length,
+ tvb_get_ptr(tvb, offset, cookie_length),
"Cookie (%u byte%s)",
cookie_length,
plurality(cookie_length, "", "s"));
@@ -1805,6 +1809,7 @@ dissect_dtls_hnd_cert_req(tvbuff_t *tvb,
proto_tree_add_bytes_format(subtree,
hf_dtls_handshake_dname,
tvb, offset, name_length,
+ tvb_get_ptr(tvb, offset, name_length),
"Distinguished Name (%u byte%s)",
name_length,
plurality(name_length, "", "s"));
diff --git a/epan/dissectors/packet-fcswils.c b/epan/dissectors/packet-fcswils.c
index 4c74774f95..c9584e9c98 100644
--- a/epan/dissectors/packet-fcswils.c
+++ b/epan/dissectors/packet-fcswils.c
@@ -756,7 +756,7 @@ dissect_swils_elp (tvbuff_t *tvb, proto_tree *elp_tree, guint8 isreq _U_)
flags="Class F Invld";
}
proto_tree_add_bytes_format (elp_tree, hf_swils_elp_clsf_svcp, tvb, offset, 6,
- "Class F Svc Parameters: (%s)", flags);
+ &elp.clsf_svcparm[0], "Class F Svc Parameters: (%s)", flags);
offset += 6;
proto_tree_add_item (elp_tree, hf_swils_elp_clsf_rcvsz, tvb, offset, 2, 0);
@@ -800,6 +800,7 @@ dissect_swils_elp (tvbuff_t *tvb, proto_tree *elp_tree, guint8 isreq _U_)
}
proto_tree_add_bytes_format (elp_tree, hf_swils_elp_cls1_svcp, tvb, offset, 2,
+ tvb_get_ptr (tvb, offset, 2),
"Class 1 Svc Parameters: (%s)", flags);
offset += 2;
if (elp.cls1_svcparm[0] & 0x80) {
@@ -821,6 +822,7 @@ dissect_swils_elp (tvbuff_t *tvb, proto_tree *elp_tree, guint8 isreq _U_)
}
proto_tree_add_bytes_format (elp_tree, hf_swils_elp_cls2_svcp, tvb, offset, 2,
+ &elp.cls2_svcparm[0],
"Class 2 Svc Parameters: (%s)", flags);
offset += 2;
@@ -842,6 +844,7 @@ dissect_swils_elp (tvbuff_t *tvb, proto_tree *elp_tree, guint8 isreq _U_)
flags="Class 3 Invld";
}
proto_tree_add_bytes_format (elp_tree, hf_swils_elp_cls3_svcp, tvb, offset, 2,
+ &elp.cls3_svcparm[0],
"Class 3 Svc Parameters: (%s)", flags);
offset += 2;
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c
index 150a6b6fca..2ac5ff545d 100644
--- a/epan/dissectors/packet-ieee80211.c
+++ b/epan/dissectors/packet-ieee80211.c
@@ -3021,7 +3021,7 @@ add_fixed_field(proto_tree * tree, tvbuff_t * tvb, int offset, int lfcode)
oui = tvb_get_ntoh24(tvb, offset);
tag_data_ptr = tvb_get_ptr(tvb, offset, 3);
proto_tree_add_bytes_format (action_tree, tag_oui, tvb, offset, 3,
- "Vendor: %s", get_manuf_name(tag_data_ptr));
+ tag_data_ptr, "Vendor: %s", get_manuf_name(tag_data_ptr));
offset+=3;
switch(oui){
case OUI_MARVELL:
@@ -3517,6 +3517,7 @@ dissect_vendor_ie_aironet(proto_item * aironet_item, proto_tree * ietree,
byte2 = tvb_get_guint8(tvb, offset + 1);
txop = tvb_get_letohs(tvb, offset + 2);
proto_tree_add_bytes_format(ietree, hf_aironet_ie_qos_val, tvb, offset, 4,
+ tvb_get_ptr(tvb, offset, 4),
"CCX QoS Parameters??: ACI %u (%s), Admission Control %sMandatory, AIFSN %u, ECWmin %u, ECWmax %u, TXOP %u",
(byte1 & 0x60) >> 5, wme_acs[(byte1 & 0x60) >> 5],
(byte1 & 0x10) ? "" : "not ", byte1 & 0x0f,
@@ -4976,7 +4977,7 @@ add_tagged_field (packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int of
tag_tvb = tvb_new_subset(tvb, offset + 2, tag_len, tag_len);
tag_data_ptr = tvb_get_ptr(tag_tvb, 0, 3);
proto_tree_add_bytes_format (tree, tag_oui, tvb, offset + 2, 3,
- "Vendor: %s", get_manuf_name(tag_data_ptr));
+ tag_data_ptr, "Vendor: %s", get_manuf_name(tag_data_ptr));
proto_item_append_text(ti, ": %s", get_manuf_name(tag_data_ptr));
#define WPAWME_OUI 0x0050F2
diff --git a/epan/dissectors/packet-isakmp.c b/epan/dissectors/packet-isakmp.c
index efaf80b06f..5e369cb102 100644
--- a/epan/dissectors/packet-isakmp.c
+++ b/epan/dissectors/packet-isakmp.c
@@ -1077,13 +1077,14 @@ dissect_sa(tvbuff_t *tvb, int offset, int length, proto_tree *tree,
/* IPSEC */
if (length < 4) {
proto_tree_add_bytes_format(tree, hf_isakmp_sa_situation, tvb, offset, length,
+ tvb_get_ptr(tvb, offset, length),
"Situation: %s (length is %u, should be >= 4)",
tvb_bytes_to_str(tvb, offset, length), length);
return;
}
situation = tvb_get_ntohl(tvb, offset);
proto_tree_add_bytes_format(tree, hf_isakmp_sa_situation, tvb, offset, 4,
- "Situation: %s (%u)",
+ tvb_get_ptr(tvb, offset, 4), "Situation: %s (%u)",
situation2str(situation), situation);
offset += 4;
length -= 4;
diff --git a/epan/dissectors/packet-isis-hello.c b/epan/dissectors/packet-isis-hello.c
index bbe0df7991..bd70860289 100644
--- a/epan/dissectors/packet-isis-hello.c
+++ b/epan/dissectors/packet-isis-hello.c
@@ -444,7 +444,7 @@ dissect_hello_restart_clv(tvbuff_t *tvb,
neighbor_id = tvb_get_ptr(tvb, offset+3, id_length);
proto_tree_add_bytes_format( tree,
hf_isis_hello_clv_restart_neighbor, tvb, offset+3,
- id_length, "Restarting Neighbor ID: %s",
+ id_length, neighbor_id, "Restarting Neighbor ID: %s",
print_system_id( neighbor_id, id_length ) );
}
}
@@ -861,7 +861,7 @@ isis_dissect_isis_hello(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
if (tree) {
source_id = tvb_get_ptr(tvb, offset, id_length);
proto_tree_add_bytes_format(hello_tree, hf_isis_hello_source_id, tvb,
- offset, id_length,
+ offset, id_length, source_id,
"System-ID {Sender of PDU} : %s",
print_system_id( source_id, id_length ) );
}
@@ -904,7 +904,7 @@ isis_dissect_isis_hello(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
if (tree) {
lan_id = tvb_get_ptr(tvb, offset, id_length+1);
proto_tree_add_bytes_format(hello_tree, hf_isis_hello_lan_id, tvb,
- offset, id_length + 1,
+ offset, id_length + 1, lan_id,
"System-ID {Designated IS} : %s",
print_system_id( lan_id, id_length + 1 ) );
}
diff --git a/epan/dissectors/packet-ismp.c b/epan/dissectors/packet-ismp.c
index e9a78db9b2..ef92c960c4 100644
--- a/epan/dissectors/packet-ismp.c
+++ b/epan/dissectors/packet-ismp.c
@@ -362,13 +362,13 @@ dissect_ismp_edp(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *ismp
{
neighbors_ptr = tvb_get_ptr( tvb, offset, (num_neighbors*10) );
edp_neighbors_ti = proto_tree_add_bytes_format(ismp_edp_tree, hf_ismp_edp_neighbors, tvb,
- offset, num_neighbors*10, "Neighbors:");
+ offset, num_neighbors*10, neighbors_ptr, "Neighbors:");
}
else
{
neighbors_ptr = tvb_get_ptr( tvb, offset, tvb_reported_length_remaining(tvb, offset) );
edp_neighbors_ti = proto_tree_add_bytes_format(ismp_edp_tree, hf_ismp_edp_neighbors, tvb,
- offset, num_neighbors *10, "Neighbors:");
+ offset, num_neighbors *10, neighbors_ptr, "Neighbors:");
}
edp_neighbors_tree = proto_item_add_subtree(edp_neighbors_ti, ett_ismp_edp_neighbors);
while ( neighbors_count < num_neighbors && tvb_reported_length_remaining(tvb, offset) >= 10)
@@ -416,7 +416,7 @@ dissect_ismp_edp(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *ismp
{
tuples_ptr = tvb_get_ptr(tvb, offset, tvb_reported_length_remaining(tvb, offset));
edp_tuples_ti = proto_tree_add_bytes_format(ismp_edp_tree, hf_ismp_edp_tuples, tvb,
- offset, tvb_reported_length_remaining(tvb, offset), "Tuples:");
+ offset, tvb_reported_length_remaining(tvb, offset), tuples_ptr, "Tuples:");
edp_tuples_tree = proto_item_add_subtree(edp_tuples_ti, ett_ismp_edp_tuples);
while ( (tuples_count < num_tuples) && (tvb_reported_length_remaining(tvb, offset) >= 4) )
diff --git a/epan/dissectors/packet-mip.c b/epan/dissectors/packet-mip.c
index 28a6059895..367c99e439 100644
--- a/epan/dissectors/packet-mip.c
+++ b/epan/dissectors/packet-mip.c
@@ -512,6 +512,7 @@ dissect_mip( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Identifier - assumed to be an NTP time here */
reftime = tvb_get_ptr(tvb, offset, 8);
proto_tree_add_bytes_format(mip_tree, hf_mip_ident, tvb, offset, 8,
+ reftime,
"Identification: %s",
ntp_fmt_ts(reftime));
offset += 8;
@@ -554,6 +555,7 @@ dissect_mip( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Identifier - assumed to be an NTP time here */
reftime = tvb_get_ptr(tvb, offset, 8);
proto_tree_add_bytes_format(mip_tree, hf_mip_ident, tvb, offset, 8,
+ reftime,
"Identification: %s",
ntp_fmt_ts(reftime));
offset += 8;
diff --git a/epan/dissectors/packet-mip6.c b/epan/dissectors/packet-mip6.c
index 2f1a57d2fc..d95fc99ea2 100644
--- a/epan/dissectors/packet-mip6.c
+++ b/epan/dissectors/packet-mip6.c
@@ -615,7 +615,7 @@ dissect_pmip6_opt_ts(const ip_tcp_opt *optp _U_, tvbuff_t *tvb, int offset,
reftime = tvb_get_ptr(tvb, offset + 2, optlen);
proto_tree_add_bytes_format(opt_tree, hf_pmip6_timestamp, tvb, offset , 10,
- "Timestamp: %s", ntp_fmt_ts(reftime));
+ reftime, "Timestamp: %s", ntp_fmt_ts(reftime));
}
static const ip_tcp_opt mip6_opts[] = {
diff --git a/epan/dissectors/packet-mpls-echo.c b/epan/dissectors/packet-mpls-echo.c
index 242decaf0b..4c95656471 100644
--- a/epan/dissectors/packet-mpls-echo.c
+++ b/epan/dissectors/packet-mpls-echo.c
@@ -1020,10 +1020,10 @@ dissect_mpls_echo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Using NTP routine to calculate the timestamp */
ts_sent = tvb_get_ptr(tvb, 16, 8);
proto_tree_add_bytes_format(mpls_echo_tree, hf_mpls_echo_ts_sent, tvb,
- offset + 16, 8, "Timestamp Sent: %s", ntp_fmt_ts(ts_sent));
+ offset + 16, 8, ts_sent, "Timestamp Sent: %s", ntp_fmt_ts(ts_sent));
ts_rec = tvb_get_ptr(tvb, 24, 8);
proto_tree_add_bytes_format(mpls_echo_tree, hf_mpls_echo_ts_rec, tvb,
- offset + 24, 8, "Timestamp Received: %s", ntp_fmt_ts(ts_rec));
+ offset + 24, 8, ts_rec, "Timestamp Received: %s", ntp_fmt_ts(ts_rec));
}
}
diff --git a/epan/dissectors/packet-ntp.c b/epan/dissectors/packet-ntp.c
index 30620789f9..f5efde5863 100644
--- a/epan/dissectors/packet-ntp.c
+++ b/epan/dissectors/packet-ntp.c
@@ -582,6 +582,7 @@ dissect_ntp_std(tvbuff_t *tvb, proto_tree *ntp_tree, guint8 flags)
}
}
proto_tree_add_bytes_format(ntp_tree, hf_ntp_refid, tvb, 12, 4,
+ refid,
"Reference Clock ID: %s", buff);
/* Reference Timestamp: This is the time at which the local clock was
@@ -589,6 +590,7 @@ dissect_ntp_std(tvbuff_t *tvb, proto_tree *ntp_tree, guint8 flags)
*/
reftime = tvb_get_ptr(tvb, 16, 8);
proto_tree_add_bytes_format(ntp_tree, hf_ntp_reftime, tvb, 16, 8,
+ reftime,
"Reference Clock Update Time: %s",
ntp_fmt_ts(reftime));
@@ -597,6 +599,7 @@ dissect_ntp_std(tvbuff_t *tvb, proto_tree *ntp_tree, guint8 flags)
*/
org = tvb_get_ptr(tvb, 24, 8);
proto_tree_add_bytes_format(ntp_tree, hf_ntp_org, tvb, 24, 8,
+ org,
"Originate Time Stamp: %s",
ntp_fmt_ts(org));
@@ -605,6 +608,7 @@ dissect_ntp_std(tvbuff_t *tvb, proto_tree *ntp_tree, guint8 flags)
*/
rec = tvb_get_ptr(tvb, 32, 8);
proto_tree_add_bytes_format(ntp_tree, hf_ntp_rec, tvb, 32, 8,
+ rec,
"Receive Time Stamp: %s",
ntp_fmt_ts(rec));
@@ -613,6 +617,7 @@ dissect_ntp_std(tvbuff_t *tvb, proto_tree *ntp_tree, guint8 flags)
*/
xmt = tvb_get_ptr(tvb, 40, 8);
proto_tree_add_bytes_format(ntp_tree, hf_ntp_xmt, tvb, 40, 8,
+ xmt,
"Transmit Time Stamp: %s",
ntp_fmt_ts(xmt));
diff --git a/epan/dissectors/packet-olsr.c b/epan/dissectors/packet-olsr.c
index 49802f1e32..7e2c6b250f 100644
--- a/epan/dissectors/packet-olsr.c
+++ b/epan/dissectors/packet-olsr.c
@@ -172,7 +172,8 @@ static double getOlsrTime(guint8 time) {
/*------------------------- TC Dissecting Code-------------------------*/
static int dissect_olsr_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *olsr_tree, int offset, int message_end) {
if (message_end - offset < 4) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_ansn, tvb, offset, message_end - offset, "Not enough bytes for TC");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_ansn, tvb, offset, message_end - offset, tvb_get_ptr(tvb, offset,
+ message_end - offset), "Not enough bytes for TC");
return message_end;
}
@@ -181,7 +182,8 @@ static int dissect_olsr_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *olsr_t
while (offset < message_end) {
if (message_end - offset < pinfo->src.len) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor_addr, tvb, offset, message_end - offset, "Not enough bytes for last neighbor");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor_addr, tvb, offset, message_end - offset, tvb_get_ptr(tvb,
+ offset, message_end - offset), "Not enough bytes for last neighbor");
return message_end;
}
if (pinfo->src.type == AT_IPv4) {
@@ -200,7 +202,8 @@ static int dissect_olsr_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *olsr_t
static int dissect_olsrorg_lq_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *olsr_tree, int offset, int message_end) {
if (message_end - offset < 4) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_ansn, tvb, offset, message_end - offset, "Not enough bytes for Olsr.org LQ-TC");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_ansn, tvb, offset, message_end - offset, tvb_get_ptr(tvb, offset,
+ message_end - offset), "Not enough bytes for Olsr.org LQ-TC");
return message_end;
}
proto_tree_add_item(olsr_tree, hf_olsr_ansn, tvb, offset, 2, FALSE);
@@ -214,14 +217,15 @@ static int dissect_olsrorg_lq_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
if (pinfo->src.type == AT_IPv4) {
if (message_end - offset < 8) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, message_end - offset, "Not enough bytes for last entry (need 8 bytes)");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, message_end - offset, tvb_get_ptr(tvb,
+ offset, message_end - offset), "Not enough bytes for last entry (need 8 bytes)");
return message_end;
}
ptr = tvb_get_ptr(tvb, offset, 8);
lq = tvb_get_guint8(tvb, offset + 4);
nlq = tvb_get_guint8(tvb, offset + 5);
- address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 8,
+ address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 8, ptr,
"Neighbor Address: %s (%d/%d)", ip_to_str(ptr), lq, nlq);
address_tree = proto_item_add_subtree(address_group, ett_olsr_message_neigh);
@@ -230,14 +234,15 @@ static int dissect_olsrorg_lq_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
offset += 4;
} else if (pinfo->src.type == AT_IPv6) {
if (message_end - offset < 20) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, message_end - offset, "Not enough bytes for last entry (need 20 bytes)");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, message_end - offset, tvb_get_ptr(tvb,
+ offset, message_end - offset), "Not enough bytes for last entry (need 20 bytes)");
return message_end;
}
ptr = tvb_get_ptr(tvb, offset, 20);
lq = tvb_get_guint8(tvb, offset + 16);
nlq = tvb_get_guint8(tvb, offset + 17);
- address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 20,
+ address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 20, ptr,
"Neighbor Address: %s (%d/%d)", ip6_to_str((const struct e_in6_addr *) ptr), lq, nlq);
address_tree = proto_item_add_subtree(address_group, ett_olsr_message_neigh);
@@ -258,7 +263,8 @@ static int dissect_olsrorg_lq_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
static int dissect_nrlolsr_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *olsr_tree, int offset, int message_end) {
int field1Ptr, field2Ptr, saneEnd;
if (message_end - offset < 4) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_ansn, tvb, offset, message_end - offset, "Not enough bytes for NRLOLSR LQ-TC");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_ansn, tvb, offset, message_end - offset, tvb_get_ptr(tvb, offset,
+ message_end - offset), "Not enough bytes for NRLOLSR LQ-TC");
return message_end;
}
@@ -296,7 +302,8 @@ static int dissect_olsr_hello(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ols
guint16 message_size = 0;
if (message_end - offset < 4) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_htime, tvb, offset, message_end - offset, "Not enough bytes for Hello");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_htime, tvb, offset, message_end - offset, tvb_get_ptr(tvb, offset,
+ message_end - offset), "Not enough bytes for Hello");
return message_end;
}
@@ -313,7 +320,8 @@ static int dissect_olsr_hello(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ols
while (offset < message_end) {
if (message_end - offset < 4) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_link_type, tvb, offset, message_end - offset, "Not enough bytes for last Hello entry");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_link_type, tvb, offset, message_end - offset, tvb_get_ptr(tvb,
+ offset, message_end - offset), "Not enough bytes for last Hello entry");
return message_end;
}
@@ -343,7 +351,8 @@ static int handle_olsr_hello_rfc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
/*-------------------Dissect Neighbor Addresses--------------------*/
while (offset < link_message_end) {
if (link_message_end - offset < pinfo->src.len) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, link_message_end - offset, "Not enough bytes for last Hello entry");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, link_message_end - offset, tvb_get_ptr(tvb,
+ offset, link_message_end - offset), "Not enough bytes for last Hello entry");
return link_message_end;
}
if (pinfo->src.type == AT_IPv4) {
@@ -370,7 +379,8 @@ static int handle_olsr_hello_olsrorg(tvbuff_t *tvb, packet_info *pinfo, proto_tr
guint8 lq, nlq;
if (link_message_end - offset < pinfo->src.len + 4) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, link_message_end - offset, "Not enough bytes for last Olsr.org LQ-Hello entry");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, link_message_end - offset, tvb_get_ptr(tvb,
+ offset, link_message_end - offset), "Not enough bytes for last Olsr.org LQ-Hello entry");
return link_message_end;
}
@@ -379,7 +389,7 @@ static int handle_olsr_hello_olsrorg(tvbuff_t *tvb, packet_info *pinfo, proto_tr
lq = tvb_get_guint8(tvb, offset + 4);
nlq = tvb_get_guint8(tvb, offset + 5);
- address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 8,
+ address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 8, ptr,
"Neighbor Address: %s (%d/%d)", ip_to_str(ptr), lq, nlq);
address_tree = proto_item_add_subtree(address_group, ett_olsr_message_neigh);
@@ -391,7 +401,7 @@ static int handle_olsr_hello_olsrorg(tvbuff_t *tvb, packet_info *pinfo, proto_tr
lq = tvb_get_guint8(tvb, offset + 16);
nlq = tvb_get_guint8(tvb, offset + 17);
- address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 20,
+ address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 20, ptr,
"Neighbor Address: %s (%d/%d)", ip6_to_str((const struct e_in6_addr *) ptr), lq, nlq);
address_tree = proto_item_add_subtree(address_group, ett_olsr_message_neigh);
@@ -413,7 +423,8 @@ static int handle_olsr_hello_olsrorg(tvbuff_t *tvb, packet_info *pinfo, proto_tr
static int dissect_olsr_mid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *olsr_tree, int offset, int message_end) {
while (offset < message_end) {
if (message_end - offset < pinfo->src.len) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_interface_addr, tvb, offset, message_end - offset, "Not enough bytes for last MID entry");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_interface_addr, tvb, offset, message_end - offset, tvb_get_ptr(
+ tvb, offset, message_end - offset), "Not enough bytes for last MID entry");
return message_end;
}
if (pinfo->src.type == AT_IPv4) {
@@ -433,7 +444,8 @@ static int dissect_olsr_mid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *olsr_
static int dissect_olsr_hna(tvbuff_t *tvb, packet_info *pinfo, proto_tree *olsr_tree, int offset, int message_end) {
while (offset < message_end) {
if (message_end - offset < pinfo->src.len * 2) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_network_addr, tvb, offset, message_end - offset, "Not enough bytes for last HNA entry");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_network_addr, tvb, offset, message_end - offset, tvb_get_ptr(tvb,
+ offset, message_end - offset), "Not enough bytes for last HNA entry");
return message_end;
}
@@ -463,7 +475,8 @@ static int dissect_olsrorg_nameservice(tvbuff_t *tvb, packet_info *pinfo, proto_
proto_tree *olsr_ns_tree;
if (message_end - offset < 4) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsrorg_ns_version, tvb, offset, message_end - offset, "Not enough bytes for Olsr.org Nameservice message");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsrorg_ns_version, tvb, offset, message_end - offset, tvb_get_ptr(tvb,
+ offset, message_end - offset), "Not enough bytes for Olsr.org Nameservice message");
return message_end;
}
@@ -476,7 +489,8 @@ static int dissect_olsrorg_nameservice(tvbuff_t *tvb, packet_info *pinfo, proto_
offset += 4;
if (version != 1) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsr_data, tvb, offset, message_end - offset, "Unkown nameservice protocol version %d", version);
+ proto_tree_add_bytes_format(olsr_tree, hf_olsr_data, tvb, offset, message_end - offset, tvb_get_ptr(tvb, offset,
+ message_end - offset), "Unkown nameservice protocol version %d", version);
return message_end;
}
@@ -485,7 +499,8 @@ static int dissect_olsrorg_nameservice(tvbuff_t *tvb, packet_info *pinfo, proto_
int total_length;
if (message_end - offset < 20) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsrorg_ns, tvb, offset, message_end - offset, "Not enough bytes for last nameservice entry");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsrorg_ns, tvb, offset, message_end - offset, tvb_get_ptr(tvb, offset,
+ message_end - offset), "Not enough bytes for last nameservice entry");
return message_end;
}
@@ -494,8 +509,8 @@ static int dissect_olsrorg_nameservice(tvbuff_t *tvb, packet_info *pinfo, proto_
total_length = 4 + 16 + ((length - 1) | 3) + 1;
- olsr_ns_item = proto_tree_add_bytes_format(olsr_tree, hf_olsrorg_ns, tvb, offset, total_length,
- "Nameservice: %s (%d)", val_to_str(type, nameservice_type_vals, "UNKNOWN"), type);
+ olsr_ns_item = proto_tree_add_bytes_format(olsr_tree, hf_olsrorg_ns, tvb, offset, total_length, tvb_get_ptr(tvb,
+ offset, total_length), "Nameservice: %s (%d)", val_to_str(type, nameservice_type_vals, "UNKNOWN"), type);
olsr_ns_tree = proto_item_add_subtree(olsr_ns_item, ett_olsr_message_ns);
@@ -511,8 +526,8 @@ static int dissect_olsrorg_nameservice(tvbuff_t *tvb, packet_info *pinfo, proto_
}
if (message_end - offset < total_length) {
- proto_tree_add_bytes_format(olsr_tree, hf_olsrorg_ns, tvb, offset, message_end - offset,
- "Not enough bytes for content of last nameservice entry");
+ proto_tree_add_bytes_format(olsr_tree, hf_olsrorg_ns, tvb, offset, message_end - offset, tvb_get_ptr(tvb, offset,
+ message_end - offset), "Not enough bytes for content of last nameservice entry");
return message_end;
}
proto_tree_add_item(olsr_ns_tree, hf_olsrorg_ns_content, tvb, offset + 20, length, FALSE);
@@ -581,7 +596,7 @@ static int dissect_olsr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
if (packet_len - offset < 4) {
message_item = proto_tree_add_bytes_format(olsr_tree, hf_olsr_message, tvb, offset, packet_len - offset,
- "Message too short !");
+ tvb_get_ptr(tvb, offset, packet_len - offset), "Message too short !");
break;
}
@@ -589,8 +604,9 @@ static int dissect_olsr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
vTime = getOlsrTime(tvb_get_guint8(tvb, offset + 1));
message_len = tvb_get_ntohs(tvb, offset + 2);
- message_item = proto_tree_add_bytes_format(olsr_tree, hf_olsr_message, tvb, offset, message_len,
- "Message: %s (%d)", val_to_str(message_type, message_type_vals, "UNKNOWN"), message_type);
+ message_item = proto_tree_add_bytes_format(olsr_tree, hf_olsr_message, tvb, offset, message_len, tvb_get_ptr(tvb,
+ offset, message_len), "Message: %s (%d)", val_to_str(message_type, message_type_vals, "UNKNOWN"),
+ message_type);
message_tree = proto_item_add_subtree(message_item, ett_olsr_message[message_type]);
proto_tree_add_uint(message_tree, hf_olsr_message_type, tvb, offset, 1, message_type);
@@ -670,12 +686,12 @@ static int dissect_olsr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
/*-----------------------------Undefined message types-----------------------------*/
else {
if ((message_len - 12) % 4) {
- proto_tree_add_bytes_format(message_tree, hf_olsr_data, tvb, offset, message_len - 12,
- "Data (%u bytes) (must be aligned on 32 bits)", message_len - 12);
+ proto_tree_add_bytes_format(message_tree, hf_olsr_data, tvb, offset, message_len - 12, tvb_get_ptr(tvb,
+ offset, message_len - 12), "Data (%u bytes) (must be aligned on 32 bits)", message_len - 12);
break;
}
- proto_tree_add_bytes_format(message_tree, hf_olsr_data, tvb, offset, message_len - 12,
- "Data (%u bytes)", message_len - 12);
+ proto_tree_add_bytes_format(message_tree, hf_olsr_data, tvb, offset, message_len - 12, tvb_get_ptr(tvb,
+ offset, message_len - 12), "Data (%u bytes)", message_len - 12);
offset += message_len - 12;
} /* end if for undefined message types */
}
diff --git a/epan/dissectors/packet-p_mul.c b/epan/dissectors/packet-p_mul.c
index 4ca2e20ffb..a1e9876926 100644
--- a/epan/dissectors/packet-p_mul.c
+++ b/epan/dissectors/packet-p_mul.c
@@ -1136,6 +1136,7 @@ static void dissect_p_mul (tvbuff_t *tvb, packet_info *pinfo _U_,
en = proto_tree_add_bytes_format (field_tree, hf_miss_seq_range,
tvb, offset, 6,
+ tvb_get_ptr (tvb, offset, 6),
"Missing Data PDU Seq Range: %d - %d",
ack_seq_no, end_seq_no);
if (ack_seq_no >= end_seq_no) {
diff --git a/epan/dissectors/packet-pana.c b/epan/dissectors/packet-pana.c
index 605763f150..e7a9abacb7 100644
--- a/epan/dissectors/packet-pana.c
+++ b/epan/dissectors/packet-pana.c
@@ -441,6 +441,7 @@ dissect_avps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *avp_tree)
case PANA_OCTET_STRING: {
proto_tree_add_bytes_format(single_avp_tree, hf_pana_avp_data_bytes, tvb,
offset, avp_data_length,
+ tvb_get_ptr(tvb, offset, avp_data_length),
"Hex Data Highlighted Below");
break;
}
diff --git a/epan/dissectors/packet-pgm.c b/epan/dissectors/packet-pgm.c
index 9a965378c9..5581755a37 100644
--- a/epan/dissectors/packet-pgm.c
+++ b/epan/dissectors/packet-pgm.c
@@ -521,13 +521,13 @@ dissect_pgmopts(ptvcursor_t* cursor, const char *pktname)
if (firsttime) {
proto_tree_add_bytes_format(opt_tree,
hf_pgm_opt_nak_list, tvb, ptvcursor_current_offset(cursor), j*4,
- "List(%d): %s", naks, nakbuf);
+ nakbuf, "List(%d): %s", naks, nakbuf);
soffset = 0;
firsttime = FALSE;
} else {
proto_tree_add_bytes_format(opt_tree,
hf_pgm_opt_nak_list, tvb, ptvcursor_current_offset(cursor), j*4,
- "List: %s", nakbuf);
+ nakbuf, "List: %s", nakbuf);
soffset = 0;
}
ptvcursor_advance(cursor, j*4);
@@ -538,11 +538,11 @@ dissect_pgmopts(ptvcursor_t* cursor, const char *pktname)
if (firsttime) {
proto_tree_add_bytes_format(opt_tree,
hf_pgm_opt_nak_list, tvb, ptvcursor_current_offset(cursor), j*4,
- "List(%d): %s", naks, nakbuf);
+ nakbuf, "List(%d): %s", naks, nakbuf);
} else {
proto_tree_add_bytes_format(opt_tree,
hf_pgm_opt_nak_list, tvb, ptvcursor_current_offset(cursor), j*4,
- "List: %s", nakbuf);
+ nakbuf, "List: %s", nakbuf);
}
ptvcursor_advance(cursor, j*4);
}
diff --git a/epan/dissectors/packet-pvfs2.c b/epan/dissectors/packet-pvfs2.c
index e13669950a..ae444468f4 100644
--- a/epan/dissectors/packet-pvfs2.c
+++ b/epan/dissectors/packet-pvfs2.c
@@ -925,6 +925,7 @@ dissect_pvfs_opaque_data(tvbuff_t *tvb, int offset,
} else {
proto_tree_add_bytes_format(string_tree,
hfindex, tvb, offset, string_length_copy,
+ (guint8 *) string_buffer,
"contents: %s", string_buffer_print);
}
}
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c
index 2fd0490cc8..75930a9a3a 100644
--- a/epan/dissectors/packet-rpc.c
+++ b/epan/dissectors/packet-rpc.c
@@ -669,6 +669,7 @@ dissect_rpc_opaque_data(tvbuff_t *tvb, int offset,
} else {
proto_tree_add_bytes_format(string_tree,
hfindex, tvb, offset, string_length_copy,
+ string_buffer,
"contents: %s", string_buffer_print);
}
}
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 40843457ad..2036a96078 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -1405,7 +1405,7 @@ dissect_pkt_ccc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_item(pkt_ccc_tree, hf_pkt_ccc_id, tvb, 0, 4, FALSE);
proto_tree_add_bytes_format(pkt_ccc_tree, hf_pkt_ccc_ts, tvb,
- 4, 8, "NTP timestamp: %s", ntp_fmt_ts(ptime));
+ 4, 8, ptime, "NTP timestamp: %s", ntp_fmt_ts(ptime));
}
dissect_rtp(tvb, pinfo, tree);
diff --git a/epan/dissectors/packet-smb-pipe.c b/epan/dissectors/packet-smb-pipe.c
index c543a23015..fb7f97a9fe 100644
--- a/epan/dissectors/packet-smb-pipe.c
+++ b/epan/dissectors/packet-smb-pipe.c
@@ -625,7 +625,7 @@ add_logon_hours(tvbuff_t *tvb, int offset, int count, packet_info *pinfo _U_,
TRUE);
} else {
proto_tree_add_bytes_format(tree, hf_index, tvb,
- cptr, count,
+ cptr, count, tvb_get_ptr(tvb, cptr, count),
"%s: %s (wrong length, should be 21, is %d",
proto_registrar_get_name(hf_index),
tvb_bytes_to_str(tvb, cptr, count), count);
diff --git a/epan/dissectors/packet-smb.c b/epan/dissectors/packet-smb.c
index c1bc4e3990..1fb96eab91 100644
--- a/epan/dissectors/packet-smb.c
+++ b/epan/dissectors/packet-smb.c
@@ -4100,7 +4100,7 @@ dissect_file_data(tvbuff_t *tvb, proto_tree *tree, int offset, guint16 bc, guint
}
tvblen = tvb_length_remaining(tvb, offset);
if(bc>tvblen){
- proto_tree_add_bytes_format(tree, hf_smb_file_data, tvb, offset, tvblen, "File Data: Incomplete. Only %d of %u bytes", tvblen, bc);
+ proto_tree_add_bytes_format(tree, hf_smb_file_data, tvb, offset, tvblen, tvb_get_ptr(tvb, offset, tvblen),"File Data: Incomplete. Only %d of %u bytes", tvblen, bc);
offset += tvblen;
} else {
proto_tree_add_item(tree, hf_smb_file_data, tvb, offset, bc, TRUE);
@@ -14450,6 +14450,7 @@ dissect_qfsi_vals(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
CHECK_BYTE_COUNT_TRANS_SUBR(32);
proto_tree_add_bytes_format(tree, hf_smb_mac_fndrinfo, tvb,
offset, 32,
+ tvb_get_ptr(tvb, offset,32),
"Finder Info: %s",
tvb_format_text(tvb, offset, 32));
COUNT_BYTES_TRANS_SUBR(32);
diff --git a/epan/dissectors/packet-ssl.c b/epan/dissectors/packet-ssl.c
index c1d2b80891..2a0c5fb491 100644
--- a/epan/dissectors/packet-ssl.c
+++ b/epan/dissectors/packet-ssl.c
@@ -2046,6 +2046,7 @@ dissect_ssl3_hnd_hello_ext(tvbuff_t *tvb,
proto_tree_add_bytes_format(ext_tree, hf_ssl_handshake_extension_data,
tvb, offset, ext_len,
+ tvb_get_ptr(tvb, offset, ext_len),
"Data (%u byte%s)",
ext_len, plurality(ext_len, "", "s"));
offset += ext_len;
@@ -2872,6 +2873,7 @@ dissect_ssl2_hnd_client_hello(tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_bytes_format(tree,
hf_ssl_handshake_session_id,
tvb, offset, session_id_length,
+ tvb_get_ptr(tvb, offset, session_id_length),
"Session ID (%u byte%s)",
session_id_length,
plurality(session_id_length, "", "s"));
diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c
index 7c55dbec34..9cea1e3671 100644
--- a/epan/dissectors/packet-tcp.c
+++ b/epan/dissectors/packet-tcp.c
@@ -3445,8 +3445,9 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
optlen = tcph->th_hlen - TCPH_MIN_LEN; /* length of options, in bytes */
tvb_ensure_bytes_exist(tvb, offset + 20, optlen);
if (tcp_tree != NULL) {
+ guint8 *p_options = ep_tvb_memdup(tvb, offset + 20, optlen);
tf = proto_tree_add_bytes_format(tcp_tree, hf_tcp_options, tvb, offset + 20,
- optlen, "Options: (%u bytes)", optlen);
+ optlen, p_options, "Options: (%u bytes)", optlen);
field_tree = proto_item_add_subtree(tf, ett_tcp_options);
} else
field_tree = NULL;
diff --git a/epan/dissectors/packet-wol.c b/epan/dissectors/packet-wol.c
index 08963642b3..035e5518f8 100644
--- a/epan/dissectors/packet-wol.c
+++ b/epan/dissectors/packet-wol.c
@@ -268,7 +268,7 @@ dissect_wol(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if ( len == 106 )
proto_tree_add_bytes_format(wol_tree, hf_wol_passwd, tvb, offset,
- 4, "Password: %s", passwd);
+ 4, passwd, "Password: %s", passwd);
else if ( len == 108 )
proto_tree_add_bytes_format(wol_tree, hf_wol_passwd, tvb, offset,
6, passwd, "Password: %s", passwd);
diff --git a/epan/dissectors/packet-x11.c b/epan/dissectors/packet-x11.c
index 8d17556ad2..a93a9bc7d5 100644
--- a/epan/dissectors/packet-x11.c
+++ b/epan/dissectors/packet-x11.c
@@ -1849,7 +1849,7 @@ static void listOfKeycode(tvbuff_t *tvb, int *offsetp, proto_tree *t, int hf,
g_malloc(sizeof(*modifiermap[m]) * keycodes_per_modifier);
tikc = proto_tree_add_bytes_format(tt, hf_x11_keycodes_item, tvb,
- *offsetp, keycodes_per_modifier, "item: ");
+ *offsetp, keycodes_per_modifier, p, "item: ");
for(i = 0; i < keycodes_per_modifier; ++i) {
guchar c = p[i];
diff --git a/epan/proto.c b/epan/proto.c
index 18c358bad2..f0bfb1091f 100644
--- a/epan/proto.c
+++ b/epan/proto.c
@@ -1489,27 +1489,15 @@ proto_tree_add_bytes_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb,
proto_item *
proto_tree_add_bytes_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start,
- gint length, const char *format, ...)
+ gint length, const guint8 *start_ptr, const char *format, ...)
{
proto_item *pi;
- field_info *new_fi;
- header_field_info *hfinfo;
va_list ap;
- if (!tree)
- return (NULL);
-
- TRY_TO_FAKE_THIS_ITEM(tree, hfindex);
-
- PROTO_REGISTRAR_GET_NTH(hfindex, hfinfo);
- DISSECTOR_ASSERT(hfinfo->type == FT_BYTES);
-
- pi = proto_tree_add_pi(tree, hfindex, tvb, start, &length, &new_fi);
+ pi = proto_tree_add_bytes(tree, hfindex, tvb, start, length, start_ptr);
if (pi == NULL)
return (NULL);
- proto_tree_set_bytes_tvb(new_fi, tvb, start, length);
-
va_start(ap, format);
proto_tree_set_representation(pi, format, ap);
va_end(ap);
diff --git a/epan/proto.h b/epan/proto.h
index 818ba0df22..c1c5867dd8 100644
--- a/epan/proto.h
+++ b/epan/proto.h
@@ -600,7 +600,7 @@ proto_tree_add_bytes_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb,
@return the newly created item */
extern proto_item *
proto_tree_add_bytes_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start,
- gint length, const char *format, ...) GNUC_FORMAT_CHECK(printf,6,7);
+ gint length, const guint8* start_ptr, const char *format, ...) GNUC_FORMAT_CHECK(printf,7,8);
/** Add a FT_ABSOLUTE_TIME or FT_RELATIVE_TIME to a proto_tree.
@param tree the tree to append this item to