diff options
author | morriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7> | 2011-01-20 03:49:44 +0000 |
---|---|---|
committer | morriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7> | 2011-01-20 03:49:44 +0000 |
commit | b379f080cb32564edd315f448fe9e0c0a495ad3e (patch) | |
tree | c9b44bf334fd6a1596e7ac2929476a05a22c979d /epan | |
parent | 3317c6757a020ebd6706a02561c1079e4e3796d5 (diff) |
Roll some calls to tvb_get_ptr() into proto_tree_add_bytes_format() (instead
of going through a temporary variable). This just makes it more obvious which
add_bytes_format() calls are or are not being given pointers into the TVB.
Use tvb_ip_to_str() and tvb_ip6_to_str() in a couple spots.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@35593 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-dcm.c | 42 | ||||
-rw-r--r-- | epan/dissectors/packet-dcp-etsi.c | 11 | ||||
-rw-r--r-- | epan/dissectors/packet-ismp.c | 13 | ||||
-rw-r--r-- | epan/dissectors/packet-ntp.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-olsr.c | 30 |
5 files changed, 38 insertions, 62 deletions
diff --git a/epan/dissectors/packet-dcm.c b/epan/dissectors/packet-dcm.c index 23a49510fe..0ab797a9aa 100644 --- a/epan/dissectors/packet-dcm.c +++ b/epan/dissectors/packet-dcm.c @@ -5321,17 +5321,14 @@ dissect_dcm_tag_value(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, dcm_s else if ((strncmp(vr, "OB", 2) == 0) || (strncmp(vr, "OF", 2) == 0) || (strncmp(vr, "OW", 2) == 0)) { /* Array of Bytes, Float or Words. Don't perform any decoding */ - const guint8* valb; - valb = tvb_get_ptr(tvb, offset, vl_max); proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, vl_max, - valb, "%-8.8s%s", "Value:", "(binary)"); + tvb_get_ptr(tvb, offset, vl_max), "%-8.8s%s", "Value:", "(binary)"); g_snprintf(*tag_value, MAX_BUF_LEN, "(binary)"); } else if (strncmp(vr, "UN", 2) == 0) { /* Usually the case for private tags in implicit syntax, since tag was not found and vr not specified */ - const guint8 *valb; guint8 val8; gchar *vals; guint32 i; @@ -5367,9 +5364,8 @@ dissect_dcm_tag_value(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, dcm_s g_snprintf(*tag_value, MAX_BUF_LEN, "%s", vals); } else { - valb = tvb_get_ptr(tvb, offset, vl_max); proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, vl_max, - valb, "%-8.8s%s", "Value:", "(binary)"); + tvb_get_ptr(tvb, offset, vl_max), "%-8.8s%s", "Value:", "(binary)"); g_snprintf(*tag_value, MAX_BUF_LEN, "(binary)"); } @@ -5398,30 +5394,24 @@ dissect_dcm_tag_value(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, dcm_s else if (strncmp(vr, "FL", 2) == 0) { /* Single Float */ gfloat valf; - const guint8* valb; - - valb = tvb_get_ptr(tvb, offset, 4); if (is_little_endian) valf = tvb_get_letohieee_float(tvb, offset); else valf = tvb_get_ntohieee_float(tvb, offset); proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, 4, - valb, "%-8.8s%f", "Value:", valf); + tvb_get_ptr(tvb, offset, 4), "%-8.8s%f", "Value:", valf); g_snprintf(*tag_value, MAX_BUF_LEN, "%f", valf); } else if (strncmp(vr, "FD", 2) == 0) { /* Double Float */ gdouble vald; - const guint8* valb; - - valb = tvb_get_ptr(tvb, offset, 8); if (is_little_endian) vald = tvb_get_letohieee_double(tvb, offset); else vald = tvb_get_ntohieee_double(tvb, offset); proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, 8, - valb, "%-8.8s%f", "Value:", vald); + tvb_get_ptr(tvb, offset, 8), "%-8.8s%f", "Value:", vald); g_snprintf(*tag_value, MAX_BUF_LEN, "%f", vald); } @@ -5519,12 +5509,8 @@ dissect_dcm_tag_value(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, dcm_s } /* Invalid VR, can only occur with Explicit syntax */ else { - const guint8* valb; - - valb = tvb_get_ptr(tvb, offset, vl_max); - proto_tree_add_bytes_format(tree, hf_dcm_tag_value_byte, tvb, offset, vl_max, - valb, "%-8.8s%s", "Value:", (vl > vl_max ? "" : "(unknown VR)")); + tvb_get_ptr(tvb, offset, vl_max), "%-8.8s%s", "Value:", (vl > vl_max ? "" : "(unknown VR)")); g_snprintf(*tag_value, MAX_BUF_LEN, "(unknown VR)"); } @@ -5987,12 +5973,10 @@ dissect_dcm_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, else if (vl > vl_max) { /* Tag is longer than the PDV/PDU. Don't perform any decoding */ - const guint8* valb; gchar *tag_desc; - valb = tvb_get_ptr(tvb, offset, vl_max); proto_tree_add_bytes_format(tag_ptree, hf_dcm_tag_value_byte, tvb, offset, vl_max, - valb, "%-8.8sBytes %d - %d [start]", "Value:", 1, vl_max); + tvb_get_ptr(tvb, offset, vl_max), "%-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; @@ -6058,7 +6042,6 @@ dissect_dcm_tag_open(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* 'Decode' open tags from previous PDV */ proto_item *pitem = NULL; - const guint8 *val = NULL; guint32 tag_value_fragment_len = 0; @@ -6103,11 +6086,10 @@ dissect_dcm_tag_open(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, pdv->is_corrupt = FALSE; } - val = tvb_get_ptr(tvb, offset, tag_value_fragment_len); - if (pdv->is_corrupt) { pitem = proto_tree_add_bytes_format(tree, hf_dcm_data_tag, tvb, - offset, tag_value_fragment_len, val, "%s <incomplete>", + offset, tag_value_fragment_len, + tvb_get_ptr(tvb, offset, tag_value_fragment_len), "%s <incomplete>", pdv->prev->open_tag.desc); expert_add_info_format(pinfo, pitem, PI_MALFORMED, PI_ERROR, @@ -6116,7 +6098,8 @@ 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, val, "%s <Bytes %d - %d, %s>", + offset, tag_value_fragment_len, + tvb_get_ptr(tvb, offset, tag_value_fragment_len), "%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, @@ -6147,11 +6130,10 @@ dissect_dcm_pdv_body(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, if (pdv->syntax == DCM_UNK) { /* Eventually, we will have a syntax detector. Until then, don't decode */ - const guint8 *val = NULL; - val = tvb_get_ptr(tvb, offset, pdv_body_len); proto_tree_add_bytes_format(tree, hf_dcm_data_tag, tvb, - offset, pdv_body_len, val, "(%04x,%04x) %-8x Unparsed data", 0, 0, pdv_body_len); + offset, pdv_body_len, tvb_get_ptr(tvb, offset, pdv_body_len), + "(%04x,%04x) %-8x Unparsed data", 0, 0, pdv_body_len); offset = endpos; } else { diff --git a/epan/dissectors/packet-dcp-etsi.c b/epan/dissectors/packet-dcp-etsi.c index 439f5c7321..a5c965ed9a 100644 --- a/epan/dissectors/packet-dcp-etsi.c +++ b/epan/dissectors/packet-dcp-etsi.c @@ -167,7 +167,7 @@ dissect_dcp_etsi (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) * * 7.1 PFT fragment structure * PFT Header - * 14, 16, 18 or 20 bytes (depending on options) Optional present if FEC=1 Optional present if Addr = 1 + * 14, 16, 18 or 20 bytes (depending on options) Optional present if FEC=1 Optional present if Addr = 1 * Psync Pseq Findex Fcount FEC HCRC Addr Plen | RSk RSz | Source Dest * 16 bits 16 bits 24 bits 24 bits 1 bit 16 bits 1 bit 14 bits | 8 bits 8 bits | 16 bits 16 bits * @@ -323,7 +323,7 @@ dissect_pft_fec_detailed(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, } for(; current_findex<next_fragment_we_have; current_findex++) { frag = fragment_add_seq_check (dummytvb, 0, pinfo, seq, - dcp_fragment_table, dcp_reassembled_table, + dcp_fragment_table, dcp_reassembled_table, current_findex, plen, (current_findex+1!=fcount)); } current_findex++; /* skip over the fragment we have */ @@ -642,16 +642,17 @@ 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, p, "%s %s rev %d.%d", tag, prot, maj, min); + offset-8, bytes+8, tvb_get_ptr(tvb, offset, bytes), + "%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, p, "%s (%u bits)", tag, bits); + offset-8, bytes+8, tvb_get_ptr(tvb, offset, bytes), + "%s (%u bits)", tag, bits); } } offset += bytes; diff --git a/epan/dissectors/packet-ismp.c b/epan/dissectors/packet-ismp.c index 8fe7936f81..4fbe4b5090 100644 --- a/epan/dissectors/packet-ismp.c +++ b/epan/dissectors/packet-ismp.c @@ -228,8 +228,6 @@ dissect_ismp_edp(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *ismp guint16 num_tuples = 0; guint16 tuple_type = 0; guint16 tuple_length = 0; - const guint8 *neighbors_ptr; - const guint8 *tuples_ptr; /* Set up structures needed to add the protocol subtree and manage it */ proto_item *edp_ti; @@ -362,15 +360,14 @@ dissect_ismp_edp(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *ismp tvb_ensure_bytes_exist(tvb, offset, num_neighbors*10); if (tvb_reported_length_remaining(tvb, offset) >= (num_neighbors *10)) { - neighbors_ptr = tvb_get_ptr( tvb, offset, (num_neighbors*10) ); edp_neighbors_ti = proto_tree_add_bytes_format(edp_tree, hf_ismp_edp_neighbors, tvb, - offset, num_neighbors*10, neighbors_ptr, "Neighbors:"); + offset, num_neighbors*10, tvb_get_ptr(tvb, offset, (num_neighbors*10)), "Neighbors:"); } else { - neighbors_ptr = tvb_get_ptr( tvb, offset, tvb_reported_length_remaining(tvb, offset) ); edp_neighbors_ti = proto_tree_add_bytes_format(edp_tree, hf_ismp_edp_neighbors, tvb, - offset, num_neighbors *10, neighbors_ptr, "Neighbors:"); + offset, num_neighbors *10, + tvb_get_ptr(tvb, offset, tvb_reported_length_remaining(tvb, offset)), "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,9 +413,9 @@ dissect_ismp_edp(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *ismp /* start populating tuple information */ if (num_tuples && tvb_reported_length_remaining(tvb, offset) >= 4) { - tuples_ptr = tvb_get_ptr(tvb, offset, tvb_reported_length_remaining(tvb, offset)); edp_tuples_ti = proto_tree_add_bytes_format(edp_tree, hf_ismp_edp_tuples, tvb, - offset, tvb_reported_length_remaining(tvb, offset), tuples_ptr, "Tuples"); + offset, tvb_reported_length_remaining(tvb, offset), + tvb_get_ptr(tvb, offset, tvb_reported_length_remaining(tvb, offset)), "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-ntp.c b/epan/dissectors/packet-ntp.c index bbcc4dc67d..fb92114f14 100644 --- a/epan/dissectors/packet-ntp.c +++ b/epan/dissectors/packet-ntp.c @@ -658,7 +658,6 @@ dissect_ntp_std(tvbuff_t *tvb, proto_tree *ntp_tree, guint8 flags) gint8 precision; double rootdelay; double rootdispersion; - const guint8 *refid; guint32 refid_addr; const guint8 *reftime; const guint8 *org; @@ -748,7 +747,6 @@ dissect_ntp_std(tvbuff_t *tvb, proto_tree *ntp_tree, guint8 flags) * But, all V3 and V4 servers set this to IP adress of their * higher level server. My decision was to resolve this address. */ - refid = tvb_get_ptr(tvb, 12, 4); buff = ep_alloc(NTP_TS_SIZE); if (stratum <= 1) { g_snprintf (buff, NTP_TS_SIZE, "Unidentified reference source '%.4s'", @@ -772,7 +770,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, + tvb_get_ptr(tvb, 12, 4), "Reference Clock ID: %s", buff); /* Reference Timestamp: This is the time at which the local clock was diff --git a/epan/dissectors/packet-olsr.c b/epan/dissectors/packet-olsr.c index 9be80a4c81..e309601a34 100644 --- a/epan/dissectors/packet-olsr.c +++ b/epan/dissectors/packet-olsr.c @@ -211,7 +211,6 @@ static int dissect_olsrorg_lq_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree * while (offset < message_end) { proto_item *address_group; proto_tree *address_tree; - const guint8 *ptr; guint8 lq, nlq; if (pinfo->src.type == AT_IPv4) { @@ -220,12 +219,12 @@ static int dissect_olsrorg_lq_tc(tvbuff_t *tvb, packet_info *pinfo, proto_tree * 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, ptr, - "Neighbor Address: %s (%d/%d)", ip_to_str(ptr), lq, nlq); + address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 8, + tvb_get_ptr(tvb, offset, 8), "Neighbor Address: %s (%d/%d)", + tvb_ip_to_str(tvb, offset), lq, nlq); address_tree = proto_item_add_subtree(address_group, ett_olsr_message_neigh); @@ -233,16 +232,16 @@ 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, tvb_get_ptr(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, ptr, - "Neighbor Address: %s (%d/%d)", ip6_to_str((const struct e_in6_addr *) ptr), lq, nlq); + address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 20, + tvb_get_ptr(tvb, offset, 20), "Neighbor Address: %s (%d/%d)", + tvb_ip6_to_str(tvb, offset), lq, nlq); address_tree = proto_item_add_subtree(address_group, ett_olsr_message_neigh); @@ -374,7 +373,6 @@ static int handle_olsr_hello_olsrorg(tvbuff_t *tvb, packet_info *pinfo, proto_tr while (offset < link_message_end) { proto_item *address_group; proto_tree *address_tree; - const guint8 *ptr; guint8 lq, nlq; if (link_message_end - offset < pinfo->src.len + 4) { @@ -384,24 +382,24 @@ static int handle_olsr_hello_olsrorg(tvbuff_t *tvb, packet_info *pinfo, proto_tr } if (pinfo->src.type == AT_IPv4) { - 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, ptr, - "Neighbor Address: %s (%d/%d)", ip_to_str(ptr), lq, nlq); + address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 8, + tvb_get_ptr(tvb, offset, 8), "Neighbor Address: %s (%d/%d)", + tvb_ip_to_str(tvb, offset), lq, nlq); address_tree = proto_item_add_subtree(address_group, ett_olsr_message_neigh); proto_tree_add_item(address_tree, hf_olsr_neighbor_addr, tvb, offset, 4, FALSE); offset += 4; } else if (pinfo->src.type == AT_IPv6) { - 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, ptr, - "Neighbor Address: %s (%d/%d)", ip6_to_str((const struct e_in6_addr *) ptr), lq, nlq); + address_group = proto_tree_add_bytes_format(olsr_tree, hf_olsr_neighbor, tvb, offset, 20, + tvb_get_ptr(tvb, offset, 20), "Neighbor Address: %s (%d/%d)", + tvb_ip6_to_str(tvb, offset), lq, nlq); address_tree = proto_item_add_subtree(address_group, ett_olsr_message_neigh); |