aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-01-06 14:54:03 -0500
committerMichael Mann <mmann78@netscape.net>2015-01-07 12:37:52 +0000
commit4088a8286d9e2dfd8f2b1c316472d768cbefec8e (patch)
treee089464bdc1b9603db474bad8f974d9df362c8bc /epan
parent6252074a249278fffc7e4897087564d951dc67b5 (diff)
SET_ADDRESS -> TVB_SET_ADDRESS to "hide" some of the tvb_get_ptr use.
Not all changes were able to remove their corresponding tvb_get_ptr, because there are other API dependent on the (tvb_get)pointer, but future iterations optimizing those other APIs will then be able to remove it. Change-Id: Id7cefd440b81834de1d1aace7cd0789b1c871a22 Reviewed-on: https://code.wireshark.org/review/6358 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-ap1394.c15
-rw-r--r--epan/dissectors/packet-ax25.c10
-rw-r--r--epan/dissectors/packet-bat.c23
-rw-r--r--epan/dissectors/packet-batadv.c352
-rw-r--r--epan/dissectors/packet-btbnep.c32
-rw-r--r--epan/dissectors/packet-clnp.c12
-rw-r--r--epan/dissectors/packet-eth.c12
-rw-r--r--epan/dissectors/packet-exported_pdu.c21
-rw-r--r--epan/dissectors/packet-infiniband.c32
-rw-r--r--epan/dissectors/packet-ip.c15
-rw-r--r--epan/dissectors/packet-ipx.c17
-rw-r--r--epan/dissectors/packet-netrom.c10
-rw-r--r--epan/dissectors/packet-p_mul.c14
-rw-r--r--epan/dissectors/packet-sll.c25
-rw-r--r--epan/dissectors/packet-sna.c29
-rw-r--r--epan/dissectors/packet-tipc.c34
-rw-r--r--epan/dissectors/packet-vines.c11
17 files changed, 267 insertions, 397 deletions
diff --git a/epan/dissectors/packet-ap1394.c b/epan/dissectors/packet-ap1394.c
index 43c89b49ad..6c15804322 100644
--- a/epan/dissectors/packet-ap1394.c
+++ b/epan/dissectors/packet-ap1394.c
@@ -74,23 +74,22 @@ dissect_ap1394(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_clear(pinfo->cinfo, COL_INFO);
src_addr=tvb_get_ptr(tvb, 8, 8);
- SET_ADDRESS(&pinfo->dl_src, AT_EUI64, 8, src_addr);
- SET_ADDRESS(&pinfo->src, AT_EUI64, 8, src_addr);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_EUI64, tvb, 8, 8);
+ TVB_SET_ADDRESS(&pinfo->src, AT_EUI64, tvb, 8, 8);
dst_addr=tvb_get_ptr(tvb, 0, 8);
- SET_ADDRESS(&pinfo->dl_dst, AT_EUI64, 8, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_EUI64, 8, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_EUI64, tvb, 0, 8);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_EUI64, tvb, 0, 8);
if (tree) {
ti = proto_tree_add_protocol_format(tree, proto_ap1394, tvb, 0, 18,
"Apple IP-over-IEEE 1394, Src: %s, Dst: %s",
bytes_to_ep_str(src_addr, 8), bytes_to_ep_str(dst_addr, 8));
fh_tree = proto_item_add_subtree(ti, ett_ap1394);
- proto_tree_add_bytes(fh_tree, hf_ap1394_dst, tvb, 0, 8, dst_addr);
- proto_tree_add_bytes(fh_tree, hf_ap1394_src, tvb, 8, 8, src_addr);
+ proto_tree_add_item(fh_tree, hf_ap1394_dst, tvb, 0, 8, ENC_NA);
+ proto_tree_add_item(fh_tree, hf_ap1394_src, tvb, 8, 8, ENC_NA);
}
etype = tvb_get_ntohs(tvb, 16);
- if (tree)
- proto_tree_add_uint(fh_tree, hf_ap1394_type, tvb, 16, 2, etype);
+ proto_tree_add_uint(fh_tree, hf_ap1394_type, tvb, 16, 2, etype);
next_tvb = tvb_new_subset_remaining(tvb, 18);
if (!dissector_try_uint(ethertype_subdissector_table, etype, next_tvb,
pinfo, tree))
diff --git a/epan/dissectors/packet-ax25.c b/epan/dissectors/packet-ax25.c
index cd02623769..d123bdd16d 100644
--- a/epan/dissectors/packet-ax25.c
+++ b/epan/dissectors/packet-ax25.c
@@ -160,17 +160,17 @@ dissect_ax25( tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree )
dst_addr = tvb_get_ptr( tvb, offset, AX25_ADDR_LEN );
proto_tree_add_ax25( ax25_tree, hf_ax25_dst, tvb, offset, AX25_ADDR_LEN, dst_addr );
- SET_ADDRESS( &pinfo->dl_dst, AT_AX25, AX25_ADDR_LEN, dst_addr );
- SET_ADDRESS( &pinfo->dst, AT_AX25, AX25_ADDR_LEN, dst_addr );
+ TVB_SET_ADDRESS( &pinfo->dl_dst, AT_AX25, tvb, offset, AX25_ADDR_LEN );
+ TVB_SET_ADDRESS( &pinfo->dst, AT_AX25, tvb, offset, AX25_ADDR_LEN );
dst_ssid = *(dst_addr + 6);
/* step over dst addr point at src addr */
offset += AX25_ADDR_LEN;
- src_addr = tvb_get_ptr( tvb, offset, AX25_ADDR_LEN );
+ src_addr = tvb_get_ptr( tvb, offset, AX25_ADDR_LEN );
proto_tree_add_ax25( ax25_tree, hf_ax25_src, tvb, offset, AX25_ADDR_LEN, src_addr );
- SET_ADDRESS( &pinfo->dl_src, AT_AX25, AX25_ADDR_LEN, src_addr );
- SET_ADDRESS( &pinfo->src, AT_AX25, AX25_ADDR_LEN, src_addr );
+ TVB_SET_ADDRESS( &pinfo->dl_src, AT_AX25, tvb, offset, AX25_ADDR_LEN );
+ TVB_SET_ADDRESS( &pinfo->src, AT_AX25, tvb, offset, AX25_ADDR_LEN );
src_ssid = *(src_addr + 6);
/* step over src addr point at either 1st via addr or control byte */
diff --git a/epan/dissectors/packet-bat.c b/epan/dissectors/packet-bat.c
index 51163484b0..562fbeb511 100644
--- a/epan/dissectors/packet-bat.c
+++ b/epan/dissectors/packet-bat.c
@@ -233,7 +233,6 @@ static int dissect_bat_batman_v5(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_item *tgw;
proto_tree *bat_batman_tree = NULL;
struct batman_packet_v5 *batman_packeth;
- const guint8 *old_orig_addr, *orig_addr;
guint32 old_orig, orig;
gint i;
static const int * batman_flags[] = {
@@ -252,12 +251,10 @@ static int dissect_bat_batman_v5(tvbuff_t *tvb, int offset, packet_info *pinfo,
batman_packeth->gwflags = tvb_get_guint8(tvb, offset+3);
batman_packeth->seqno = tvb_get_ntohs(tvb, offset+4);
batman_packeth->gwport = tvb_get_ntohs(tvb, offset+6);
- orig_addr = tvb_get_ptr(tvb, offset+8, 4);
orig = tvb_get_ipv4(tvb, offset+8);
- SET_ADDRESS(&batman_packeth->orig, AT_IPv4, 4, orig_addr);
- old_orig_addr = tvb_get_ptr(tvb, offset+12, 4);
+ TVB_SET_ADDRESS(&batman_packeth->orig, AT_IPv4, tvb, offset+8, 4);
old_orig = tvb_get_ipv4(tvb, offset+12);
- SET_ADDRESS(&batman_packeth->old_orig, AT_IPv4, 4, old_orig_addr);
+ TVB_SET_ADDRESS(&batman_packeth->old_orig, AT_IPv4, tvb, offset+12, 4);
batman_packeth->tq = tvb_get_guint8(tvb, offset+16);
batman_packeth->hna_len = tvb_get_guint8(tvb, offset+17);
@@ -455,7 +452,6 @@ static void dissect_bat_vis(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
static void dissect_bat_vis_v22(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
struct vis_packet_v22 *vis_packeth;
- const guint8 *sender_ip_addr;
guint32 sender_ip;
proto_tree *bat_vis_tree = NULL;
@@ -465,9 +461,8 @@ static void dissect_bat_vis_v22(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
vis_packeth = wmem_new(wmem_packet_scope(), struct vis_packet_v22);
- sender_ip_addr = tvb_get_ptr(tvb, 0, 4);
sender_ip = tvb_get_ipv4(tvb, 0);
- SET_ADDRESS(&vis_packeth->sender_ip, AT_IPv4, 4, sender_ip_addr);
+ TVB_SET_ADDRESS(&vis_packeth->sender_ip, AT_IPv4, tvb, 0, 4);
vis_packeth->version = tvb_get_guint8(tvb, 4);
vis_packeth->gw_class = tvb_get_guint8(tvb, 5);
vis_packeth->tq_max = tvb_get_ntohs(tvb, 6);
@@ -538,15 +533,13 @@ static void dissect_bat_vis_v22(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
static void dissect_vis_entry_v22(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
{
struct vis_data_v22 *vis_datah;
- const guint8 *ip_addr;
guint32 ip;
vis_datah = wmem_new(wmem_packet_scope(), struct vis_data_v22);
vis_datah->type = tvb_get_guint8(tvb, 0);
vis_datah->data = tvb_get_ntohs(tvb, 1);
- ip_addr = tvb_get_ptr(tvb, 3, 4);
ip = tvb_get_ipv4(tvb, 3);
- SET_ADDRESS(&vis_datah->ip, AT_IPv4, 4, ip_addr);
+ TVB_SET_ADDRESS(&vis_datah->ip, AT_IPv4, tvb, 3, 4);
/* Set tree info */
@@ -580,7 +573,6 @@ static void dissect_vis_entry_v22(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
static void dissect_bat_vis_v23(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
struct vis_packet_v23 *vis_packeth;
- const guint8 *sender_ip_addr;
guint32 sender_ip;
proto_tree *bat_vis_tree = NULL;
@@ -590,9 +582,8 @@ static void dissect_bat_vis_v23(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
vis_packeth = wmem_new(wmem_packet_scope(), struct vis_packet_v23);
- sender_ip_addr = tvb_get_ptr(tvb, 0, 4);
sender_ip = tvb_get_ipv4(tvb, 0);
- SET_ADDRESS(&vis_packeth->sender_ip, AT_IPv4, 4, sender_ip_addr);
+ TVB_SET_ADDRESS(&vis_packeth->sender_ip, AT_IPv4, tvb, 0, 4);
vis_packeth->version = tvb_get_guint8(tvb, 4);
vis_packeth->gw_class = tvb_get_guint8(tvb, 5);
vis_packeth->tq_max = tvb_get_guint8(tvb, 6);
@@ -663,15 +654,13 @@ static void dissect_bat_vis_v23(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
static void dissect_vis_entry_v23(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
{
struct vis_data_v23 *vis_datah;
- const guint8 *ip_addr;
guint32 ip;
vis_datah = wmem_new(wmem_packet_scope(), struct vis_data_v23);
vis_datah->type = tvb_get_guint8(tvb, 0);
vis_datah->data = tvb_get_guint8(tvb, 1);
- ip_addr = tvb_get_ptr(tvb, 2, 4);
ip = tvb_get_ipv4(tvb, 2);
- SET_ADDRESS(&vis_datah->ip, AT_IPv4, 4, ip_addr);
+ TVB_SET_ADDRESS(&vis_datah->ip, AT_IPv4, tvb, 2, 4);
/* Set tree info */
diff --git a/epan/dissectors/packet-batadv.c b/epan/dissectors/packet-batadv.c
index 29c84a66e2..28810f1133 100644
--- a/epan/dissectors/packet-batadv.c
+++ b/epan/dissectors/packet-batadv.c
@@ -1057,9 +1057,12 @@ static int dissect_batadv_batman_v5(tvbuff_t *tvb, int offset, packet_info *pinf
batman_packeth->tq = tvb_get_guint8(tvb, offset+5);
batman_packeth->seqno = tvb_get_ntohs(tvb, offset+6);
orig_addr = tvb_get_ptr(tvb, offset+8, 6);
- SET_ADDRESS(&batman_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&batman_packeth->orig, AT_ETHER, tvb, offset+8, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset+8, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset+8, 6);
prev_sender_addr = tvb_get_ptr(tvb, offset+14, 6);
- SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, 6, prev_sender_addr);
+ TVB_SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, tvb, offset+14, 6);
+
batman_packeth->num_tt = tvb_get_guint8(tvb, offset+20);
batman_packeth->pad = tvb_get_guint8(tvb, offset+21);
@@ -1113,9 +1116,6 @@ static int dissect_batadv_batman_v5(tvbuff_t *tvb, int offset, packet_info *pinf
/* Skip 1 byte of padding. */
offset += 1;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
@@ -1156,9 +1156,11 @@ static int dissect_batadv_batman_v7(tvbuff_t *tvb, int offset, packet_info *pinf
batman_packeth->tq = tvb_get_guint8(tvb, offset+3);
batman_packeth->seqno = tvb_get_ntohs(tvb, offset+4);
orig_addr = tvb_get_ptr(tvb, offset+6, 6);
- SET_ADDRESS(&batman_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&batman_packeth->orig, AT_ETHER, tvb, offset+6, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset+6, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset+6, 6);
prev_sender_addr = tvb_get_ptr(tvb, offset+12, 6);
- SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, 6, prev_sender_addr);
+ TVB_SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, tvb, offset+12, 6);
batman_packeth->ttl = tvb_get_guint8(tvb, offset+18);
batman_packeth->num_tt = tvb_get_guint8(tvb, offset+19);
@@ -1205,9 +1207,6 @@ static int dissect_batadv_batman_v7(tvbuff_t *tvb, int offset, packet_info *pinf
proto_tree_add_item(batadv_batman_tree, hf_batadv_batman_num_tt, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
@@ -1249,9 +1248,11 @@ static int dissect_batadv_batman_v9(tvbuff_t *tvb, int offset, packet_info *pinf
batman_packeth->tq = tvb_get_guint8(tvb, offset+3);
batman_packeth->seqno = tvb_get_ntohs(tvb, offset+4);
orig_addr = tvb_get_ptr(tvb, offset+6, 6);
- SET_ADDRESS(&batman_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&batman_packeth->orig, AT_ETHER, tvb, offset+6, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset+6, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset+6, 6);
prev_sender_addr = tvb_get_ptr(tvb, offset+12, 6);
- SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, 6, prev_sender_addr);
+ TVB_SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, tvb, offset+12, 6);
batman_packeth->ttl = tvb_get_guint8(tvb, offset+18);
batman_packeth->num_tt = tvb_get_guint8(tvb, offset+19);
batman_packeth->gwflags = tvb_get_guint8(tvb, offset+20);
@@ -1306,9 +1307,6 @@ static int dissect_batadv_batman_v9(tvbuff_t *tvb, int offset, packet_info *pinf
/* Skip 1 byte of padding. */
offset += 1;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
@@ -1350,9 +1348,11 @@ static int dissect_batadv_batman_v10(tvbuff_t *tvb, int offset, packet_info *pin
batman_packeth->tq = tvb_get_guint8(tvb, offset+3);
batman_packeth->seqno = tvb_get_ntohl(tvb, offset+4);
orig_addr = tvb_get_ptr(tvb, offset+8, 6);
- SET_ADDRESS(&batman_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&batman_packeth->orig, AT_ETHER, tvb, offset+8, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset+8, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset+8, 6);
prev_sender_addr = tvb_get_ptr(tvb, offset+14, 6);
- SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, 6, prev_sender_addr);
+ TVB_SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, tvb, offset+14, 6);
batman_packeth->ttl = tvb_get_guint8(tvb, offset+20);
batman_packeth->num_tt = tvb_get_guint8(tvb, offset+21);
batman_packeth->gwflags = tvb_get_guint8(tvb, offset+22);
@@ -1407,9 +1407,6 @@ static int dissect_batadv_batman_v10(tvbuff_t *tvb, int offset, packet_info *pin
/* Skip 1 byte of padding. */
offset += 1;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
@@ -1450,9 +1447,11 @@ static int dissect_batadv_batman_v11(tvbuff_t *tvb, int offset, packet_info *pin
batman_packeth->tq = tvb_get_guint8(tvb, offset+3);
batman_packeth->seqno = tvb_get_ntohl(tvb, offset+4);
orig_addr = tvb_get_ptr(tvb, offset+8, 6);
- SET_ADDRESS(&batman_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&batman_packeth->orig, AT_ETHER, tvb, offset+8, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset+8, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset+8, 6);
prev_sender_addr = tvb_get_ptr(tvb, offset+14, 6);
- SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, 6, prev_sender_addr);
+ TVB_SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, tvb, offset+14, 6);
batman_packeth->ttl = tvb_get_guint8(tvb, offset+20);
batman_packeth->num_tt = tvb_get_guint8(tvb, offset+21);
@@ -1499,9 +1498,6 @@ static int dissect_batadv_batman_v11(tvbuff_t *tvb, int offset, packet_info *pin
proto_tree_add_item(batadv_batman_tree, hf_batadv_batman_num_tt, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->num_tt; i++) {
@@ -1544,9 +1540,11 @@ static int dissect_batadv_batman_v14(tvbuff_t *tvb, int offset, packet_info *pin
batman_packeth->flags = tvb_get_guint8(tvb, offset+3);
batman_packeth->seqno = tvb_get_ntohl(tvb, offset+4);
orig_addr = tvb_get_ptr(tvb, offset+8, 6);
- SET_ADDRESS(&batman_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&batman_packeth->orig, AT_ETHER, tvb, offset+8, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset+8, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset+8, 6);
prev_sender_addr = tvb_get_ptr(tvb, offset+14, 6);
- SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, 6, prev_sender_addr);
+ TVB_SET_ADDRESS(&batman_packeth->prev_sender, AT_ETHER, tvb, offset+14, 6);
batman_packeth->gw_flags = tvb_get_guint8(tvb, offset+20);
batman_packeth->tq = tvb_get_guint8(tvb, offset+21);
batman_packeth->tt_num_changes = tvb_get_guint8(tvb, offset+22);
@@ -1606,9 +1604,6 @@ static int dissect_batadv_batman_v14(tvbuff_t *tvb, int offset, packet_info *pin
proto_tree_add_item(batadv_batman_tree, hf_batadv_batman_tt_crc, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, batman_packeth);
for (i = 0; i < batman_packeth->tt_num_changes; i++) {
@@ -1660,7 +1655,7 @@ static int dissect_batadv_iv_ogm_v15(tvbuff_t *tvb, int offset,
proto_tree *batadv_iv_ogm_tree = NULL;
guint8 type, version;
struct iv_ogm_packet_v15 *iv_ogm_packeth;
- const guint8 *prev_sender_addr, *orig_addr;
+ const guint8 *orig_addr;
tvbuff_t *next_tvb;
static const int * flags[] = {
&hf_batadv_iv_ogm_flags_directlink,
@@ -1727,13 +1722,14 @@ static int dissect_batadv_iv_ogm_v15(tvbuff_t *tvb, int offset,
offset += 4;
orig_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&iv_ogm_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&iv_ogm_packeth->orig, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_iv_ogm_tree, hf_batadv_iv_ogm_orig, tvb,
offset, 6, ENC_NA);
offset += 6;
- prev_sender_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&iv_ogm_packeth->prev_sender, AT_ETHER, 6, prev_sender_addr);
+ TVB_SET_ADDRESS(&iv_ogm_packeth->prev_sender, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_iv_ogm_tree, hf_batadv_iv_ogm_prev_sender, tvb,
offset, 6, ENC_NA);
offset += 6;
@@ -1752,9 +1748,6 @@ static int dissect_batadv_iv_ogm_v15(tvbuff_t *tvb, int offset,
offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, iv_ogm_packeth);
if (iv_ogm_packeth->tvlv_len > 0) {
@@ -1832,7 +1825,9 @@ static void dissect_batadv_bcast_v6(tvbuff_t *tvb, packet_info *pinfo, proto_tre
bcast_packeth->version = tvb_get_guint8(tvb, 1);
orig_addr = tvb_get_ptr(tvb, 2, 6);
- SET_ADDRESS(&bcast_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&bcast_packeth->orig, AT_ETHER, tvb, 2, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 2, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 2, 6);
bcast_packeth->seqno = tvb_get_ntohs(tvb, 8);
/* Set info column */
@@ -1862,9 +1857,6 @@ static void dissect_batadv_bcast_v6(tvbuff_t *tvb, packet_info *pinfo, proto_tre
proto_tree_add_item(batadv_bcast_tree, hf_batadv_bcast_seqno, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, bcast_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -1892,7 +1884,9 @@ static void dissect_batadv_bcast_v10(tvbuff_t *tvb, packet_info *pinfo, proto_tr
bcast_packeth->version = tvb_get_guint8(tvb, 1);
orig_addr = tvb_get_ptr(tvb, 2, 6);
- SET_ADDRESS(&bcast_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&bcast_packeth->orig, AT_ETHER, tvb, 2, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 2, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 2, 6);
bcast_packeth->ttl = tvb_get_guint8(tvb, 8);
bcast_packeth->seqno = tvb_get_ntohl(tvb, 9);
@@ -1926,9 +1920,6 @@ static void dissect_batadv_bcast_v10(tvbuff_t *tvb, packet_info *pinfo, proto_tr
proto_tree_add_item(batadv_bcast_tree, hf_batadv_bcast_seqno32, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, bcast_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -1961,7 +1952,9 @@ static void dissect_batadv_bcast_v14(tvbuff_t *tvb, packet_info *pinfo, proto_tr
bcast_packeth->reserved = tvb_get_guint8(tvb, 3);
bcast_packeth->seqno = tvb_get_ntohl(tvb, 4);
orig_addr = tvb_get_ptr(tvb, 8, 6);
- SET_ADDRESS(&bcast_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&bcast_packeth->orig, AT_ETHER, tvb, 8, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 8, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 8, 6);
/* Set info column */
col_add_fstr(pinfo->cinfo, COL_INFO, "Seq=%u", bcast_packeth->seqno);
@@ -1999,9 +1992,6 @@ static void dissect_batadv_bcast_v14(tvbuff_t *tvb, packet_info *pinfo, proto_tr
proto_tree_add_ether(batadv_bcast_tree, hf_batadv_bcast_orig, tvb, offset, 6, orig_addr);
offset += 6;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, bcast_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -2065,13 +2055,21 @@ static void dissect_batadv_icmp_v6(tvbuff_t *tvb, packet_info *pinfo, proto_tree
icmp_packeth->version = tvb_get_guint8(tvb, 1);
icmp_packeth->msg_type = tvb_get_guint8(tvb, 2);
dst_addr = tvb_get_ptr(tvb, 3, 6);
- SET_ADDRESS(&icmp_packeth->dst, AT_ETHER, 6, dst_addr);
+ TVB_SET_ADDRESS(&icmp_packeth->dst, AT_ETHER, tvb, 3, 6);
orig_addr = tvb_get_ptr(tvb, 9, 6);
- SET_ADDRESS(&icmp_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&icmp_packeth->orig, AT_ETHER, tvb, 9, 6);
+
+ /* XXX - presume some of these are copy/paste errors (some should use dst_addr?), but keeping code for now */
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 9, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 9, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 9, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 9, 6);
+
icmp_packeth->ttl = tvb_get_guint8(tvb, 15);
icmp_packeth->uid = tvb_get_guint8(tvb, 16);
icmp_packeth->seqno = tvb_get_ntohs(tvb, 17);
+
/* Set info column */
col_add_fstr(pinfo->cinfo, COL_INFO, "[%s] Seq=%u",
val_to_str(icmp_packeth->msg_type, icmp_packettypenames, "Unknown (0x%02x)"),
@@ -2113,12 +2111,6 @@ static void dissect_batadv_icmp_v6(tvbuff_t *tvb, packet_info *pinfo, proto_tree
proto_tree_add_item(batadv_icmp_tree, hf_batadv_icmp_seqno, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, icmp_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -2196,9 +2188,16 @@ static void dissect_batadv_icmp_v7(tvbuff_t *tvb, packet_info *pinfo, proto_tree
icmp_packeth->msg_type = tvb_get_guint8(tvb, 2);
icmp_packeth->ttl = tvb_get_guint8(tvb, 3);
dst_addr = tvb_get_ptr(tvb, 4, 6);
- SET_ADDRESS(&icmp_packeth->dst, AT_ETHER, 6, dst_addr);
+ TVB_SET_ADDRESS(&icmp_packeth->dst, AT_ETHER, tvb, 4, 6);
orig_addr = tvb_get_ptr(tvb, 10, 6);
- SET_ADDRESS(&icmp_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&icmp_packeth->orig, AT_ETHER, tvb, 10, 6);
+
+ /* XXX - presume some of these are copy/paste errors (some should use dst_addr?), but keeping code for now */
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 10, 6);
+
icmp_packeth->seqno = tvb_get_ntohs(tvb, 16);
icmp_packeth->uid = tvb_get_guint8(tvb, 17);
@@ -2249,12 +2248,6 @@ static void dissect_batadv_icmp_v7(tvbuff_t *tvb, packet_info *pinfo, proto_tree
offset += 1 + BAT_RR_LEN * 6;
}
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, icmp_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -2281,9 +2274,16 @@ static void dissect_batadv_icmp_v14(tvbuff_t *tvb, packet_info *pinfo, proto_tre
icmp_packeth->ttl = tvb_get_guint8(tvb, 2);
icmp_packeth->msg_type = tvb_get_guint8(tvb, 3);
dst_addr = tvb_get_ptr(tvb, 4, 6);
- SET_ADDRESS(&icmp_packeth->dst, AT_ETHER, 6, dst_addr);
+ TVB_SET_ADDRESS(&icmp_packeth->dst, AT_ETHER, tvb, 4, 6);
orig_addr = tvb_get_ptr(tvb, 10, 6);
- SET_ADDRESS(&icmp_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&icmp_packeth->orig, AT_ETHER, tvb, 10, 6);
+
+ /* XXX - presume some of these are copy/paste errors (some should use dst_addr?), but keeping code for now */
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 10, 6);
+
icmp_packeth->seqno = tvb_get_ntohs(tvb, 16);
icmp_packeth->uid = tvb_get_guint8(tvb, 17);
icmp_packeth->reserved = tvb_get_guint8(tvb, 18);
@@ -2338,12 +2338,6 @@ static void dissect_batadv_icmp_v14(tvbuff_t *tvb, packet_info *pinfo, proto_tre
offset += 1 + BAT_RR_LEN * 6;
}
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, icmp_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -2415,13 +2409,18 @@ static void dissect_batadv_icmp_v15(tvbuff_t *tvb, packet_info *pinfo,
offset += 1;
dst_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&icmp_packeth->dst, AT_ETHER, 6, dst_addr);
+ TVB_SET_ADDRESS(&icmp_packeth->dst, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, offset, 6);
+
proto_tree_add_item(batadv_icmp_tree, hf_batadv_icmp_dst, tvb, offset,
6, ENC_NA);
offset += 6;
orig_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&icmp_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&icmp_packeth->orig, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_icmp_tree, hf_batadv_icmp_orig, tvb, offset,
6, ENC_NA);
offset += 6;
@@ -2449,12 +2448,6 @@ static void dissect_batadv_icmp_v15(tvbuff_t *tvb, packet_info *pinfo,
offset += BAT_RR_LEN * 6;
}
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dst_addr);
-
tap_queue_packet(batadv_tap, pinfo, icmp_packeth);
length_remaining = tvb_captured_length_remaining(tvb, offset);
@@ -2508,7 +2501,10 @@ static void dissect_batadv_unicast_v6(tvbuff_t *tvb, packet_info *pinfo, proto_t
unicast_packeth->version = tvb_get_guint8(tvb, 1);
dest_addr = tvb_get_ptr(tvb, 2, 6);
- SET_ADDRESS(&unicast_packeth->dest, AT_ETHER, 6, dest_addr);
+ TVB_SET_ADDRESS(&unicast_packeth->dest, AT_ETHER, tvb, 2, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 2, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 2, 6);
+
unicast_packeth->ttl = tvb_get_guint8(tvb, 8);
/* Set info column */
@@ -2538,9 +2534,6 @@ static void dissect_batadv_unicast_v6(tvbuff_t *tvb, packet_info *pinfo, proto_t
proto_tree_add_item(batadv_unicast_tree, hf_batadv_unicast_ttl, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dest_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dest_addr);
-
tap_queue_packet(batadv_tap, pinfo, unicast_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -2572,7 +2565,9 @@ static void dissect_batadv_unicast_v14(tvbuff_t *tvb, packet_info *pinfo, proto_
unicast_packeth->ttl = tvb_get_guint8(tvb, 2);
unicast_packeth->ttvn = tvb_get_guint8(tvb, 3);
dest_addr = tvb_get_ptr(tvb, 4, 6);
- SET_ADDRESS(&unicast_packeth->dest, AT_ETHER, 6, dest_addr);
+ TVB_SET_ADDRESS(&unicast_packeth->dest, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 4, 6);
/* Set info column */
col_clear(pinfo->cinfo, COL_INFO);
@@ -2608,9 +2603,6 @@ static void dissect_batadv_unicast_v14(tvbuff_t *tvb, packet_info *pinfo, proto_
proto_tree_add_ether(batadv_unicast_tree, hf_batadv_unicast_dst, tvb, offset, 6, dest_addr);
offset += 6;
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dest_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dest_addr);
-
tap_queue_packet(batadv_tap, pinfo, unicast_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -2662,9 +2654,13 @@ static void dissect_batadv_unicast_4addr_v14(tvbuff_t *tvb, packet_info *pinfo,
unicast_4addr_packeth->ttl = tvb_get_guint8(tvb, 2);
unicast_4addr_packeth->ttvn = tvb_get_guint8(tvb, 3);
dest_addr = tvb_get_ptr(tvb, 4, 6);
- SET_ADDRESS(&unicast_4addr_packeth->dest, AT_ETHER, 6, dest_addr);
+ TVB_SET_ADDRESS(&unicast_4addr_packeth->dest, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 4, 6);
src_addr = tvb_get_ptr(tvb, 10, 6);
- SET_ADDRESS(&unicast_4addr_packeth->src, AT_ETHER, 6, src_addr);
+ TVB_SET_ADDRESS(&unicast_4addr_packeth->src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 10, 6);
unicast_4addr_packeth->subtype = tvb_get_guint8(tvb, 16);
unicast_4addr_packeth->reserved = tvb_get_guint8(tvb, 17);
@@ -2711,11 +2707,6 @@ static void dissect_batadv_unicast_4addr_v14(tvbuff_t *tvb, packet_info *pinfo,
/* Skip 1 byte of padding. */
offset += 1;
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dest_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dest_addr);
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, src_addr);
-
tap_queue_packet(batadv_tap, pinfo, unicast_4addr_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -2773,11 +2764,15 @@ static void dissect_batadv_unicast_frag_v12(tvbuff_t *tvb, packet_info *pinfo, p
unicast_frag_packeth->version = tvb_get_guint8(tvb, 1);
dest_addr = tvb_get_ptr(tvb, 2, 6);
- SET_ADDRESS(&unicast_frag_packeth->dest, AT_ETHER, 6, dest_addr);
+ TVB_SET_ADDRESS(&unicast_frag_packeth->dest, AT_ETHER, tvb, 2, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 2, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 2, 6);
unicast_frag_packeth->ttl = tvb_get_guint8(tvb, 8);
unicast_frag_packeth->flags = tvb_get_guint8(tvb, 9);
orig_addr = tvb_get_ptr(tvb, 10, 6);
- SET_ADDRESS(&unicast_frag_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&unicast_frag_packeth->orig, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 10, 6);
unicast_frag_packeth->seqno = tvb_get_ntohs(tvb, 16);
save_fragmented = pinfo->fragmented;
@@ -2820,12 +2815,6 @@ static void dissect_batadv_unicast_frag_v12(tvbuff_t *tvb, packet_info *pinfo, p
proto_tree_add_item(batadv_unicast_frag_tree, hf_batadv_unicast_frag_seqno, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dest_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dest_addr);
-
tap_queue_packet(batadv_tap, pinfo, unicast_frag_packeth);
head = (unicast_frag_packeth->flags & 0x1);
@@ -2872,11 +2861,15 @@ static void dissect_batadv_unicast_frag_v14(tvbuff_t *tvb, packet_info *pinfo, p
unicast_frag_packeth->ttl = tvb_get_guint8(tvb, 2);
unicast_frag_packeth->ttvn = tvb_get_guint8(tvb, 3);
dest_addr = tvb_get_ptr(tvb, 4, 6);
- SET_ADDRESS(&unicast_frag_packeth->dest, AT_ETHER, 6, dest_addr);
+ TVB_SET_ADDRESS(&unicast_frag_packeth->dest, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 4, 6);
unicast_frag_packeth->flags = tvb_get_guint8(tvb, 10);
unicast_frag_packeth->align = tvb_get_guint8(tvb, 11);
orig_addr = tvb_get_ptr(tvb, 12, 6);
- SET_ADDRESS(&unicast_frag_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&unicast_frag_packeth->orig, AT_ETHER, tvb, 12, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 12, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 12, 6);
unicast_frag_packeth->seqno = tvb_get_ntohs(tvb, 18);
save_fragmented = pinfo->fragmented;
@@ -2925,12 +2918,6 @@ static void dissect_batadv_unicast_frag_v14(tvbuff_t *tvb, packet_info *pinfo, p
proto_tree_add_item(batadv_unicast_frag_tree, hf_batadv_unicast_frag_seqno, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dest_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dest_addr);
-
tap_queue_packet(batadv_tap, pinfo, unicast_frag_packeth);
head = (unicast_frag_packeth->flags & 0x1);
@@ -2962,7 +2949,7 @@ static void dissect_batadv_unicast_frag_v15(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree)
{
struct unicast_frag_packet_v15 *unicast_frag_packeth;
- const guint8 *dest_addr, *orig_addr;
+ const guint8 *dest_addr;
gboolean save_fragmented;
fragment_head *frag_msg = NULL;
proto_tree *batadv_unicast_frag_tree = NULL;
@@ -3023,13 +3010,16 @@ static void dissect_batadv_unicast_frag_v15(tvbuff_t *tvb, packet_info *pinfo,
offset += 1;
dest_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&unicast_frag_packeth->dest, AT_ETHER, 6, dest_addr);
+ TVB_SET_ADDRESS(&unicast_frag_packeth->dest, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_unicast_frag_tree, hf_batadv_unicast_frag_dst,
tvb, offset, 6, ENC_NA);
offset += 6;
- orig_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&unicast_frag_packeth->orig, AT_ETHER, 6, orig_addr);
+ TVB_SET_ADDRESS(&unicast_frag_packeth->orig, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_unicast_frag_tree, hf_batadv_unicast_frag_orig,
tvb, offset, 6, ENC_NA);
offset += 6;
@@ -3046,12 +3036,6 @@ static void dissect_batadv_unicast_frag_v15(tvbuff_t *tvb, packet_info *pinfo,
ENC_BIG_ENDIAN);
offset += 2;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dest_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dest_addr);
-
tap_queue_packet(batadv_tap, pinfo, unicast_frag_packeth);
frag_no = unicast_frag_packeth->no >> 4;
@@ -3136,11 +3120,17 @@ static void dissect_batadv_vis_v6(tvbuff_t *tvb, packet_info *pinfo, proto_tree
vis_packeth->ttl = tvb_get_guint8(tvb, 5);
vis_orig_addr = tvb_get_ptr(tvb, 6, 6);
- SET_ADDRESS(&vis_packeth->vis_orig, AT_ETHER, 6, vis_orig_addr);
+ TVB_SET_ADDRESS(&vis_packeth->vis_orig, AT_ETHER, tvb, 6, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 6, 6);
target_orig_addr = tvb_get_ptr(tvb, 12, 6);
- SET_ADDRESS(&vis_packeth->target_orig, AT_ETHER, 6, target_orig_addr);
+ TVB_SET_ADDRESS(&vis_packeth->target_orig, AT_ETHER, tvb, 12, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 12, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 12, 6);
sender_orig_addr = tvb_get_ptr(tvb, 18, 6);
- SET_ADDRESS(&vis_packeth->sender_orig, AT_ETHER, 6, sender_orig_addr);
+ TVB_SET_ADDRESS(&vis_packeth->sender_orig, AT_ETHER, tvb, 18, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 18, 6);
+
+
/* Set info column */
col_add_fstr(pinfo->cinfo, COL_INFO, "[%s] Seq=%u",
@@ -3185,12 +3175,6 @@ static void dissect_batadv_vis_v6(tvbuff_t *tvb, packet_info *pinfo, proto_tree
proto_tree_add_ether(batadv_vis_tree, hf_batadv_vis_sender_orig, tvb, offset, 6, sender_orig_addr);
offset += 6;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, sender_orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, vis_orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, target_orig_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, target_orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, vis_packeth);
switch (vis_packeth->version) {
@@ -3260,11 +3244,16 @@ static void dissect_batadv_vis_v10(tvbuff_t *tvb, packet_info *pinfo, proto_tree
vis_packeth->ttl = tvb_get_guint8(tvb, 8);
vis_orig_addr = tvb_get_ptr(tvb, 9, 6);
- SET_ADDRESS(&vis_packeth->vis_orig, AT_ETHER, 6, vis_orig_addr);
+ TVB_SET_ADDRESS(&vis_packeth->vis_orig, AT_ETHER, tvb, 9, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 9, 6);
target_orig_addr = tvb_get_ptr(tvb, 15, 6);
- SET_ADDRESS(&vis_packeth->target_orig, AT_ETHER, 6, target_orig_addr);
+ TVB_SET_ADDRESS(&vis_packeth->target_orig, AT_ETHER, tvb, 15, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 15, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 15, 6);
sender_orig_addr = tvb_get_ptr(tvb, 21, 6);
- SET_ADDRESS(&vis_packeth->sender_orig, AT_ETHER, 6, sender_orig_addr);
+ TVB_SET_ADDRESS(&vis_packeth->sender_orig, AT_ETHER, tvb, 21, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 21, 6);
+
/* Set info column */
col_add_fstr(pinfo->cinfo, COL_INFO, "[%s] Seq=%u",
@@ -3310,12 +3299,6 @@ static void dissect_batadv_vis_v10(tvbuff_t *tvb, packet_info *pinfo, proto_tree
proto_tree_add_ether(batadv_vis_tree, hf_batadv_vis_sender_orig, tvb, offset, 6, sender_orig_addr);
offset += 6;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, sender_orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, vis_orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, target_orig_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, target_orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, vis_packeth);
for (i = 0; i < vis_packeth->entries; i++) {
@@ -3361,11 +3344,15 @@ static void dissect_batadv_vis_v14(tvbuff_t *tvb, packet_info *pinfo, proto_tree
vis_packeth->reserved = tvb_get_guint8(tvb, 9);
vis_orig_addr = tvb_get_ptr(tvb, 10, 6);
- SET_ADDRESS(&vis_packeth->vis_orig, AT_ETHER, 6, vis_orig_addr);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&vis_packeth->vis_orig, AT_ETHER, tvb, 10, 6);
target_orig_addr = tvb_get_ptr(tvb, 16, 6);
- SET_ADDRESS(&vis_packeth->target_orig, AT_ETHER, 6, target_orig_addr);
+ TVB_SET_ADDRESS(&vis_packeth->target_orig, AT_ETHER, tvb, 16, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 16, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 16, 6);
sender_orig_addr = tvb_get_ptr(tvb, 22, 6);
- SET_ADDRESS(&vis_packeth->sender_orig, AT_ETHER, 6, sender_orig_addr);
+ TVB_SET_ADDRESS(&vis_packeth->sender_orig, AT_ETHER, tvb, 22, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 22, 6);
/* Set info column */
col_add_fstr(pinfo->cinfo, COL_INFO, "[%s] Seq=%u",
@@ -3414,12 +3401,6 @@ static void dissect_batadv_vis_v14(tvbuff_t *tvb, packet_info *pinfo, proto_tree
proto_tree_add_ether(batadv_vis_tree, hf_batadv_vis_sender_orig, tvb, offset, 6, sender_orig_addr);
offset += 6;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, sender_orig_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, vis_orig_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, target_orig_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, target_orig_addr);
-
tap_queue_packet(batadv_tap, pinfo, vis_packeth);
for (i = 0; i < vis_packeth->entries; i++) {
@@ -3511,9 +3492,13 @@ static void dissect_batadv_tt_query_v14(tvbuff_t *tvb, packet_info *pinfo _U_, p
tt_query_packeth->flags = tvb_get_guint8(tvb, 3);
dst_addr = tvb_get_ptr(tvb, 4, 6);
- SET_ADDRESS(&tt_query_packeth->dst, AT_ETHER, 6, dst_addr);
+ TVB_SET_ADDRESS(&tt_query_packeth->dst, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 4, 6);
src_addr = tvb_get_ptr(tvb, 10, 6);
- SET_ADDRESS(&tt_query_packeth->src, AT_ETHER, 6, src_addr);
+ TVB_SET_ADDRESS(&tt_query_packeth->src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 10, 6);
tt_query_packeth->ttvn = tvb_get_guint8(tvb, 16);
tt_query_packeth->tt_data = tvb_get_ntohs(tvb, 17);
@@ -3578,12 +3563,6 @@ static void dissect_batadv_tt_query_v14(tvbuff_t *tvb, packet_info *pinfo _U_, p
}
offset += 2;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, src_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dst_addr);
-
tap_queue_packet(batadv_tap, pinfo, tt_query_packeth);
if (tt_type == TT_RESPONSE) {
@@ -3660,11 +3639,15 @@ static void dissect_batadv_roam_adv_v14(tvbuff_t *tvb, packet_info *pinfo, proto
roam_adv_packeth->version = tvb_get_guint8(tvb, 1);
roam_adv_packeth->ttl = tvb_get_guint8(tvb, 2);
dst_addr = tvb_get_ptr(tvb, 4, 6);
- SET_ADDRESS(&roam_adv_packeth->dst, AT_ETHER, 6, dst_addr);
+ TVB_SET_ADDRESS(&roam_adv_packeth->dst, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 4, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 4, 6);
src_addr = tvb_get_ptr(tvb, 10, 6);
- SET_ADDRESS(&roam_adv_packeth->src, AT_ETHER, 6, src_addr);
+ TVB_SET_ADDRESS(&roam_adv_packeth->src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 10, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 10, 6);
client_addr = tvb_get_ptr(tvb, 16, 6);
- SET_ADDRESS(&roam_adv_packeth->client, AT_ETHER, 6, client_addr);
+ TVB_SET_ADDRESS(&roam_adv_packeth->client, AT_ETHER, tvb, 16, 6);
/* Set info column */
col_add_fstr(pinfo->cinfo, COL_INFO, "Client %s (%s)", get_ether_name(client_addr), address_to_str(wmem_packet_scope(), &roam_adv_packeth->client));
@@ -3702,12 +3685,6 @@ static void dissect_batadv_roam_adv_v14(tvbuff_t *tvb, packet_info *pinfo, proto
proto_tree_add_ether(batadv_roam_adv_tree, hf_batadv_roam_adv_client, tvb, offset, 6, client_addr);
offset += 6;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, src_addr);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dst_addr);
-
tap_queue_packet(batadv_tap, pinfo, roam_adv_packeth);
length_remaining = tvb_length_remaining(tvb, offset);
@@ -3745,8 +3722,6 @@ static void dissect_batadv_coded_v15(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree)
{
struct coded_packet_v15 *coded_packeth;
- const guint8 *first_source, *first_orig_dest;
- const guint8 *second_dest, *second_source, *second_orig_dest;
proto_tree *batadv_coded_tree = NULL;
tvbuff_t *next_tvb;
@@ -3792,15 +3767,16 @@ static void dissect_batadv_coded_v15(tvbuff_t *tvb, packet_info *pinfo,
offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- first_source = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&coded_packeth->first_source, AT_ETHER, 6, first_source);
+ TVB_SET_ADDRESS(&coded_packeth->first_source, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_coded_tree, hf_batadv_coded_first_source,
tvb, offset, 6, ENC_NA);
offset += 6;
- first_orig_dest = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&coded_packeth->first_orig_dest, AT_ETHER, 6,
- first_orig_dest);
+ TVB_SET_ADDRESS(&coded_packeth->first_orig_dest, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_coded_tree, hf_batadv_coded_first_orig_dest,
tvb, offset, 6, ENC_NA);
offset += 6;
@@ -3820,21 +3796,17 @@ static void dissect_batadv_coded_v15(tvbuff_t *tvb, packet_info *pinfo,
offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- second_dest = tvb_get_ptr(tvb, 4, offset);
- SET_ADDRESS(&coded_packeth->second_dest, AT_ETHER, 6, second_dest);
+ TVB_SET_ADDRESS(&coded_packeth->second_dest, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_coded_tree, hf_batadv_coded_second_dest,
tvb, offset, 6, ENC_NA);
offset += 6;
- second_source = tvb_get_ptr(tvb, 4, offset);
- SET_ADDRESS(&coded_packeth->second_source, AT_ETHER, 6, second_source);
+ TVB_SET_ADDRESS(&coded_packeth->second_source, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_coded_tree, hf_batadv_coded_second_source,
tvb, offset, 6, ENC_NA);
offset += 6;
- second_orig_dest = tvb_get_ptr(tvb, 4, offset);
- SET_ADDRESS(&coded_packeth->second_orig_dest, AT_ETHER, 6,
- second_orig_dest);
+ TVB_SET_ADDRESS(&coded_packeth->second_orig_dest, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_coded_tree, hf_batadv_coded_second_orig_dest,
tvb, offset, 6, ENC_NA);
offset += 6;
@@ -3849,12 +3821,6 @@ static void dissect_batadv_coded_v15(tvbuff_t *tvb, packet_info *pinfo,
offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, first_source);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, first_source);
-
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, first_orig_dest);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, first_orig_dest);
-
tap_queue_packet(batadv_tap, pinfo, coded_packeth);
length_remaining = tvb_captured_length_remaining(tvb, offset);
@@ -3949,13 +3915,17 @@ static void dissect_batadv_unicast_tvlv_v15(tvbuff_t *tvb, packet_info *pinfo,
offset += 1;
dest_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&unicast_tvlv_packeth->dest, AT_ETHER, 6, dest_addr);
+ TVB_SET_ADDRESS(&unicast_tvlv_packeth->dest, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_unicast_tvlv_tree, hf_batadv_unicast_tvlv_dst,
tvb, offset, 6, ENC_NA);
offset += 6;
src_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&unicast_tvlv_packeth->src, AT_ETHER, offset, src_addr);
+ TVB_SET_ADDRESS(&unicast_tvlv_packeth->src, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset, 6);
proto_tree_add_item(batadv_unicast_tvlv_tree, hf_batadv_unicast_tvlv_src,
tvb, offset, 6, ENC_NA);
offset += 6;
@@ -3969,12 +3939,6 @@ static void dissect_batadv_unicast_tvlv_v15(tvbuff_t *tvb, packet_info *pinfo,
/* Skip 2 byte of padding. */
offset += 2;
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dest_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dest_addr);
-
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, src_addr);
-
tap_queue_packet(batadv_tap, pinfo, unicast_tvlv_packeth);
if (unicast_tvlv_packeth->tvlv_len > 0) {
diff --git a/epan/dissectors/packet-btbnep.c b/epan/dissectors/packet-btbnep.c
index 7e9ec08886..1aa98cb0c3 100644
--- a/epan/dissectors/packet-btbnep.c
+++ b/epan/dissectors/packet-btbnep.c
@@ -286,8 +286,6 @@ dissect_btbnep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
guint type = 0;
proto_item *addr_item;
proto_tree *addr_tree = NULL;
- const guint8 *src_addr;
- const guint8 *dst_addr;
pi = proto_tree_add_item(tree, proto_btbnep, tvb, offset, -1, ENC_NA);
btbnep_tree = proto_item_add_subtree(pi, ett_btbnep);
@@ -319,32 +317,28 @@ dissect_btbnep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
if (extension_flag) col_append_str(pinfo->cinfo, COL_INFO, "+E");
if (bnep_type == BNEP_TYPE_GENERAL_ETHERNET || bnep_type == BNEP_TYPE_COMPRESSED_ETHERNET_DESTINATION_ONLY) {
- dst_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, offset, 6);
- addr_item = proto_tree_add_ether(btbnep_tree, hf_btbnep_dst, tvb, offset, 6, dst_addr);
- if (addr_item) addr_tree = proto_item_add_subtree(addr_item, ett_addr);
- proto_tree_add_ether(addr_tree, hf_btbnep_addr, tvb, offset, 6, dst_addr);
+ addr_item = proto_tree_add_item(btbnep_tree, hf_btbnep_dst, tvb, offset, 6, ENC_NA);
+ addr_tree = proto_item_add_subtree(addr_item, ett_addr);
+ proto_tree_add_item(addr_tree, hf_btbnep_addr, tvb, offset, 6, ENC_NA);
proto_tree_add_item(addr_tree, hf_btbnep_lg, tvb, offset, 3, ENC_BIG_ENDIAN);
proto_tree_add_item(addr_tree, hf_btbnep_ig, tvb, offset, 3, ENC_BIG_ENDIAN);
offset += 6;
}
if (bnep_type == BNEP_TYPE_GENERAL_ETHERNET || bnep_type == BNEP_TYPE_COMPRESSED_ETHERNET_SOURCE_ONLY) {
- src_addr = tvb_get_ptr(tvb, offset, 6);
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, src_addr);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, offset, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, offset, 6);
-
- addr_item = proto_tree_add_ether(btbnep_tree, hf_btbnep_src, tvb, offset, 6, src_addr);
- if (addr_item) {
- addr_tree = proto_item_add_subtree(addr_item, ett_addr);
- if (tvb_get_guint8(tvb, offset) & 0x01) {
- expert_add_info(pinfo, addr_item, &ei_btbnep_src_not_group_address);
- }
+ addr_item = proto_tree_add_item(btbnep_tree, hf_btbnep_src, tvb, offset, 6, ENC_NA);
+ addr_tree = proto_item_add_subtree(addr_item, ett_addr);
+ if (tvb_get_guint8(tvb, offset) & 0x01) {
+ expert_add_info(pinfo, addr_item, &ei_btbnep_src_not_group_address);
}
- proto_tree_add_ether(addr_tree, hf_btbnep_addr, tvb, offset, 6, src_addr);
+
+ proto_tree_add_item(addr_tree, hf_btbnep_addr, tvb, offset, 6, ENC_NA);
proto_tree_add_item(addr_tree, hf_btbnep_lg, tvb, offset, 3, ENC_BIG_ENDIAN);
proto_tree_add_item(addr_tree, hf_btbnep_ig, tvb, offset, 3, ENC_BIG_ENDIAN);
offset += 6;
diff --git a/epan/dissectors/packet-clnp.c b/epan/dissectors/packet-clnp.c
index 9621549aeb..2dccdcfaa4 100644
--- a/epan/dissectors/packet-clnp.c
+++ b/epan/dissectors/packet-clnp.c
@@ -391,10 +391,10 @@ dissect_clnp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
dst_addr = tvb_get_ptr(tvb, offset, dst_len);
nsel = tvb_get_guint8(tvb, offset + dst_len - 1);
- SET_ADDRESS(&pinfo->net_dst, AT_OSI, dst_len, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_OSI, dst_len, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->net_dst, AT_OSI, tvb, offset, dst_len);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_OSI, tvb, offset, dst_len);
proto_tree_add_bytes_format_value(clnp_tree, hf_clnp_dest, tvb, offset, dst_len,
- dst_addr,
+ NULL,
"%s",
print_nsap_net(dst_addr, dst_len));
offset += dst_len;
@@ -428,11 +428,11 @@ dissect_clnp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
return;
}
src_addr = tvb_get_ptr(tvb, offset, src_len);
- SET_ADDRESS(&pinfo->net_src, AT_OSI, src_len, src_addr);
- SET_ADDRESS(&pinfo->src, AT_OSI, src_len, src_addr);
+ TVB_SET_ADDRESS(&pinfo->net_src, AT_OSI, tvb, offset, src_len);
+ TVB_SET_ADDRESS(&pinfo->src, AT_OSI, tvb, offset, src_len);
proto_tree_add_bytes_format_value(clnp_tree, hf_clnp_src, tvb,
offset, src_len,
- src_addr,
+ NULL,
"%s",
print_nsap_net(src_addr, src_len));
diff --git a/epan/dissectors/packet-eth.c b/epan/dissectors/packet-eth.c
index ea18ac1a30..7da82c67ee 100644
--- a/epan/dissectors/packet-eth.c
+++ b/epan/dissectors/packet-eth.c
@@ -313,15 +313,15 @@ dissect_eth_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
src_addr = tvb_get_ptr(tvb, 6, 6);
src_addr_name = get_ether_name(src_addr);
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src_addr);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, src_addr);
- SET_ADDRESS(&ehdr->src, AT_ETHER, 6, src_addr);
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 6, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 6, 6);
+ TVB_SET_ADDRESS(&ehdr->src, AT_ETHER, tvb, 6, 6);
dst_addr = tvb_get_ptr(tvb, 0, 6);
dst_addr_name = get_ether_name(dst_addr);
- SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dst_addr);
- SET_ADDRESS(&ehdr->dst, AT_ETHER, 6, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, tvb, 0, 6);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_ETHER, tvb, 0, 6);
+ TVB_SET_ADDRESS(&ehdr->dst, AT_ETHER, tvb, 0, 6);
ehdr->type = tvb_get_ntohs(tvb, 12);
diff --git a/epan/dissectors/packet-exported_pdu.c b/epan/dissectors/packet-exported_pdu.c
index fb45104d35..1d358acb32 100644
--- a/epan/dissectors/packet-exported_pdu.c
+++ b/epan/dissectors/packet-exported_pdu.c
@@ -96,7 +96,6 @@ dissect_exported_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
int tag_len;
int next_proto_type = -1;
char *proto_name = NULL;
- const guchar *src_addr, *dst_addr;
dissector_handle_t proto_handle;
mtp3_addr_pc_t *mtp3_addr;
guint8 dvb_ci_dir;
@@ -124,27 +123,23 @@ dissect_exported_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case EXP_PDU_TAG_IPV4_SRC:
proto_tree_add_item(tag_tree, hf_exported_pdu_ipv4_src, tvb, offset, 4, ENC_BIG_ENDIAN);
- src_addr = tvb_get_ptr(tvb, offset, 4);
- SET_ADDRESS(&pinfo->net_src, AT_IPv4, 4, src_addr);
- SET_ADDRESS(&pinfo->src, AT_IPv4, 4, src_addr);
+ TVB_SET_ADDRESS(&pinfo->net_src, AT_IPv4, tvb, offset, 4);
+ TVB_SET_ADDRESS(&pinfo->src, AT_IPv4, tvb, offset, 4);
break;
case EXP_PDU_TAG_IPV4_DST:
proto_tree_add_item(tag_tree, hf_exported_pdu_ipv4_dst, tvb, offset, 4, ENC_BIG_ENDIAN);
- dst_addr = tvb_get_ptr(tvb, offset, 4);
- SET_ADDRESS(&pinfo->net_dst, AT_IPv4, 4, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_IPv4, 4, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->net_dst, AT_IPv4, tvb, offset, 4);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_IPv4, tvb, offset, 4);
break;
case EXP_PDU_TAG_IPV6_SRC:
proto_tree_add_item(tag_tree, hf_exported_pdu_ipv6_src, tvb, offset, 16, ENC_NA);
- src_addr = tvb_get_ptr(tvb, offset, 16);
- SET_ADDRESS(&pinfo->net_src, AT_IPv6, 16, src_addr);
- SET_ADDRESS(&pinfo->src, AT_IPv6, 16, src_addr);
+ TVB_SET_ADDRESS(&pinfo->net_src, AT_IPv6, tvb, offset, 16);
+ TVB_SET_ADDRESS(&pinfo->src, AT_IPv6, tvb, offset, 16);
break;
case EXP_PDU_TAG_IPV6_DST:
proto_tree_add_item(tag_tree, hf_exported_pdu_ipv6_dst, tvb, offset, 16, ENC_NA);
- dst_addr = tvb_get_ptr(tvb, offset, 16);
- SET_ADDRESS(&pinfo->net_dst, AT_IPv6, 16, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_IPv6, 16, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->net_dst, AT_IPv6, tvb, offset, 16);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_IPv6, tvb, offset, 16);
break;
case EXP_PDU_TAG_PORT_TYPE:
pinfo->ptype = (port_type)tvb_get_ntohl(tvb, offset);
diff --git a/epan/dissectors/packet-infiniband.c b/epan/dissectors/packet-infiniband.c
index 4df9820e18..350c895233 100644
--- a/epan/dissectors/packet-infiniband.c
+++ b/epan/dissectors/packet-infiniband.c
@@ -1578,8 +1578,6 @@ dissect_infiniband_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, i
guint16 packetLength = 0; /* Packet Length. We track this as tvb_length - offset. */
/* It provides the parsing methods a known size */
/* that must be available for that header. */
- struct e_in6_addr SRCgid; /* Structures to hold GIDs should we need them */
- struct e_in6_addr DSTgid;
gint crc_length = 0;
gint crclen = 6;
@@ -1692,23 +1690,13 @@ skip_lrh:
proto_tree_add_item(global_route_header_tree, hf_infiniband_hop_limit, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1;
proto_tree_add_item(global_route_header_tree, hf_infiniband_source_gid, tvb, offset, 16, ENC_NA);
- tvb_get_ipv6(tvb, offset, &SRCgid);
-
/* set source GID in packet view*/
- src_addr = wmem_alloc(pinfo->pool, GID_SIZE);
- memcpy(src_addr, &SRCgid, GID_SIZE);
- SET_ADDRESS(&pinfo->src, AT_IB, GID_SIZE, src_addr);
-
+ TVB_SET_ADDRESS(&pinfo->src, AT_IB, tvb, offset, GID_SIZE);
offset += 16;
proto_tree_add_item(global_route_header_tree, hf_infiniband_destination_gid, tvb, offset, 16, ENC_NA);
-
- tvb_get_ipv6(tvb, offset, &DSTgid);
-
/* set destination GID in packet view*/
- dst_addr = wmem_alloc(pinfo->pool, GID_SIZE);
- memcpy(dst_addr, &DSTgid, GID_SIZE);
- SET_ADDRESS(&pinfo->dst, AT_IB, GID_SIZE, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_IB, tvb, offset, GID_SIZE);
offset += 16;
packetLength -= 40; /* Shave 40 bytes for GRH */
@@ -4943,8 +4931,6 @@ static void dissect_general_info(tvbuff_t *tvb, gint offset, packet_info *pinfo,
guint8 virtualLane = 0; /* The Virtual Lane of the current Packet */
gint32 nextHeaderSequence = -1; /* defined by this dissector. #define which indicates the upcoming header sequence from OpCode */
guint8 nxtHdr = 0; /* that must be available for that header. */
- struct e_in6_addr SRCgid; /* Struct to display ipv6 Address */
- struct e_in6_addr DSTgid; /* Struct to display ipv6 Address */
guint8 management_class = 0;
MAD_Data MadData;
@@ -4997,22 +4983,12 @@ skip_lrh:
nxtHdr = tvb_get_guint8(tvb, offset);
offset += 2;
- tvb_get_ipv6(tvb, offset, &SRCgid);
-
/* Set source GID in packet view. */
- src_addr = wmem_alloc(pinfo->pool, GID_SIZE);
- memcpy(src_addr, &SRCgid, GID_SIZE);
- SET_ADDRESS(&pinfo->src, AT_IB, GID_SIZE, src_addr);
-
+ TVB_SET_ADDRESS(&pinfo->src, AT_IB, tvb, offset, GID_SIZE);
offset += 16;
- tvb_get_ipv6(tvb, offset, &DSTgid);
-
/* Set destination GID in packet view. */
- dst_addr = wmem_alloc(pinfo->pool, GID_SIZE);
- memcpy(dst_addr, &DSTgid, GID_SIZE);
- SET_ADDRESS(&pinfo->dst, AT_IB, GID_SIZE, dst_addr);
-
+ TVB_SET_ADDRESS(&pinfo->dst, AT_IB, tvb, offset, GID_SIZE);
offset += 16;
if (nxtHdr != 0x1B)
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index 876d4e38c0..3b8953234b 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -1966,7 +1966,6 @@ dissect_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
gboolean update_col_info = TRUE;
gboolean save_fragmented;
ws_ip *iph;
- const guchar *src_addr, *dst_addr;
guint32 src32, dst32;
proto_tree *tree;
proto_item *item = NULL, *ttl_item;
@@ -2222,11 +2221,10 @@ dissect_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
PROTO_ITEM_SET_GENERATED(item);
}
}
- src_addr = tvb_get_ptr(tvb, offset + IPH_SRC, 4);
src32 = tvb_get_ntohl(tvb, offset + IPH_SRC);
- SET_ADDRESS(&pinfo->net_src, AT_IPv4, 4, src_addr);
- SET_ADDRESS(&pinfo->src, AT_IPv4, 4, src_addr);
- SET_ADDRESS(&iph->ip_src, AT_IPv4, 4, src_addr);
+ TVB_SET_ADDRESS(&pinfo->net_src, AT_IPv4, tvb, offset + IPH_SRC, 4);
+ TVB_SET_ADDRESS(&pinfo->src, AT_IPv4, tvb, offset + IPH_SRC, 4);
+ TVB_SET_ADDRESS(&iph->ip_src, AT_IPv4, tvb, offset + IPH_SRC, 4);
if (tree) {
const char *src_host;
@@ -2266,11 +2264,10 @@ dissect_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
else
dst_off = 0;
- dst_addr = tvb_get_ptr(tvb, offset + IPH_DST + dst_off, 4);
dst32 = tvb_get_ntohl(tvb, offset + IPH_DST + dst_off);
- SET_ADDRESS(&pinfo->net_dst, AT_IPv4, 4, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_IPv4, 4, dst_addr);
- SET_ADDRESS(&iph->ip_dst, AT_IPv4, 4, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->net_dst, AT_IPv4, tvb, offset + IPH_DST + dst_off, 4);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_IPv4, tvb, offset + IPH_DST + dst_off, 4);
+ TVB_SET_ADDRESS(&iph->ip_dst, AT_IPv4, tvb, offset + IPH_DST + dst_off, 4);
/* If an IP is destined for an IP address in the Local Network Control Block
* (e.g. 224.0.0.0/24), the packet should never be routed and the TTL would
diff --git a/epan/dissectors/packet-ipx.c b/epan/dissectors/packet-ipx.c
index 4f7a411a02..6e6739eef3 100644
--- a/epan/dissectors/packet-ipx.c
+++ b/epan/dissectors/packet-ipx.c
@@ -301,8 +301,6 @@ dissect_ipx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree *ipx_tree = NULL;
proto_item *ti = NULL, *hidden_item;
- const guint8 *src_net_node, *dst_net_node;
-
guint8 ipx_hops;
char *str;
guint16 first_socket, second_socket;
@@ -334,15 +332,12 @@ dissect_ipx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Adjust the tvbuff length to include only the IPX datagram. */
set_actual_length(tvb, ipxh->ipx_length);
- src_net_node = tvb_get_ptr(tvb, 18, 10);
- dst_net_node = tvb_get_ptr(tvb, 6, 10);
-
- SET_ADDRESS(&pinfo->net_src, AT_IPX, 10, src_net_node);
- SET_ADDRESS(&pinfo->src, AT_IPX, 10, src_net_node);
- SET_ADDRESS(&ipxh->ipx_src, AT_IPX, 10, src_net_node);
- SET_ADDRESS(&pinfo->net_dst, AT_IPX, 10, dst_net_node);
- SET_ADDRESS(&pinfo->dst, AT_IPX, 10, dst_net_node);
- SET_ADDRESS(&ipxh->ipx_dst, AT_IPX, 10, dst_net_node);
+ TVB_SET_ADDRESS(&pinfo->net_src, AT_IPX, tvb, 18, 10);
+ TVB_SET_ADDRESS(&pinfo->src, AT_IPX, tvb, 18, 10);
+ TVB_SET_ADDRESS(&ipxh->ipx_src, AT_IPX, tvb, 18, 10);
+ TVB_SET_ADDRESS(&pinfo->net_dst, AT_IPX, tvb, 6, 10);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_IPX, tvb, 6, 10);
+ TVB_SET_ADDRESS(&ipxh->ipx_dst, AT_IPX, tvb, 6, 10);
col_add_str(pinfo->cinfo, COL_INFO, val_to_str_ext(ipxh->ipx_dsocket, &ipx_socket_vals_ext, "Unknown (0x%04x)"));
diff --git a/epan/dissectors/packet-netrom.c b/epan/dissectors/packet-netrom.c
index cfd341901a..d996863c4c 100644
--- a/epan/dissectors/packet-netrom.c
+++ b/epan/dissectors/packet-netrom.c
@@ -210,16 +210,16 @@ dissect_netrom_proto(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset = 0;
/* source */
- src_addr = tvb_get_ptr( tvb, offset, AX25_ADDR_LEN );
- SET_ADDRESS(&pinfo->dl_src, AT_AX25, AX25_ADDR_LEN, src_addr);
- SET_ADDRESS(&pinfo->src, AT_AX25, AX25_ADDR_LEN, src_addr);
+ src_addr = tvb_get_ptr( tvb, offset, AX25_ADDR_LEN );
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_AX25, tvb, offset, AX25_ADDR_LEN);
+ TVB_SET_ADDRESS(&pinfo->src, AT_AX25, tvb, offset, AX25_ADDR_LEN);
/* src_ssid = *(src_addr + 6); */
offset += AX25_ADDR_LEN; /* step over src addr */
/* destination */
dst_addr = tvb_get_ptr( tvb, offset, AX25_ADDR_LEN );
- SET_ADDRESS(&pinfo->dl_dst, AT_AX25, AX25_ADDR_LEN, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_AX25, AX25_ADDR_LEN, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->dl_dst, AT_AX25, tvb, offset, AX25_ADDR_LEN);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_AX25, tvb, offset, AX25_ADDR_LEN);
/* dst_ssid = *(dst_addr + 6); */
offset += AX25_ADDR_LEN; /* step over dst addr */
diff --git a/epan/dissectors/packet-p_mul.c b/epan/dissectors/packet-p_mul.c
index 026a6d72b6..cb7d042cbf 100644
--- a/epan/dissectors/packet-p_mul.c
+++ b/epan/dissectors/packet-p_mul.c
@@ -791,7 +791,7 @@ static int dissect_p_mul (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
proto_tree *p_mul_tree, *field_tree, *checksum_tree;
proto_item *ti, *en, *len_en;
gboolean save_fragmented;
- guint32 message_id = 0, ip;
+ guint32 message_id = 0;
guint16 no_dest = 0, count = 0, len, data_len = 0;
guint16 checksum_calc, checksum_found;
guint16 pdu_length, no_pdus = 0, seq_no = 0;
@@ -949,8 +949,7 @@ static int dissect_p_mul (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
if (pdu_type == Ack_PDU) {
/* Source ID of Ack Sender */
- ip = tvb_get_ipv4 (tvb, offset);
- SET_ADDRESS (&dst, AT_IPv4, sizeof(ip), wmem_memdup (wmem_packet_scope(), &ip, 4));
+ TVB_SET_ADDRESS (&dst, AT_IPv4, tvb, offset, 4);
proto_tree_add_item (p_mul_tree, hf_source_id_ack, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
@@ -960,8 +959,7 @@ static int dissect_p_mul (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
offset += 2;
} else {
/* Source Id */
- ip = tvb_get_ipv4 (tvb, offset);
- SET_ADDRESS (&src, AT_IPv4, sizeof(ip), wmem_memdup (wmem_packet_scope(), &ip, 4));
+ TVB_SET_ADDRESS (&src, AT_IPv4, tvb, offset, 4);
proto_tree_add_item (p_mul_tree, hf_source_id, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
@@ -1036,8 +1034,7 @@ static int dissect_p_mul (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
field_tree = proto_item_add_subtree (en, ett_dest_entry);
/* Destination Id */
- ip = tvb_get_ipv4 (tvb, offset);
- SET_ADDRESS (&dst, AT_IPv4, sizeof(ip), wmem_memdup(wmem_packet_scope(), &ip, 4));
+ TVB_SET_ADDRESS (&dst, AT_IPv4, tvb, offset, 4);
proto_tree_add_item (field_tree, hf_dest_id, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
@@ -1098,8 +1095,7 @@ static int dissect_p_mul (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
}
/* Source Id */
- ip = tvb_get_ipv4 (tvb, offset);
- SET_ADDRESS (&src, AT_IPv4, sizeof(ip), wmem_memdup (wmem_packet_scope(), &ip, 4));
+ TVB_SET_ADDRESS (&src, AT_IPv4, tvb, offset, 4);
proto_tree_add_item (field_tree, hf_source_id, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
diff --git a/epan/dissectors/packet-sll.c b/epan/dissectors/packet-sll.c
index a8d2418024..70af9aac8b 100644
--- a/epan/dissectors/packet-sll.c
+++ b/epan/dissectors/packet-sll.c
@@ -195,7 +195,6 @@ dissect_sll(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
guint16 pkttype;
guint16 protocol;
guint16 hatype, halen;
- const guint8 *src;
proto_item *ti;
tvbuff_t *next_tvb;
proto_tree *fh_tree = NULL;
@@ -245,30 +244,20 @@ dissect_sll(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
switch (halen) {
case 4:
- src = tvb_get_ptr(tvb, 6, 4);
- SET_ADDRESS(&pinfo->dl_src, AT_IPv4, 4, src);
- SET_ADDRESS(&pinfo->src, AT_IPv4, 4, src);
- if (tree) {
- proto_tree_add_item(fh_tree, &hfi_sll_src_ipv4, tvb,
- 6, 4, ENC_BIG_ENDIAN);
- }
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_IPv4, tvb, 6, 4);
+ TVB_SET_ADDRESS(&pinfo->src, AT_IPv4, tvb, 6, 4);
+ proto_tree_add_item(fh_tree, &hfi_sll_src_ipv4, tvb, 6, 4, ENC_BIG_ENDIAN);
break;
case 6:
- src = tvb_get_ptr(tvb, 6, 6);
- SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src);
- SET_ADDRESS(&pinfo->src, AT_ETHER, 6, src);
- if (tree) {
- proto_tree_add_ether(fh_tree, hfi_sll_src_eth.id, tvb,
- 6, 6, src);
- }
+ TVB_SET_ADDRESS(&pinfo->dl_src, AT_ETHER, tvb, 6, 6);
+ TVB_SET_ADDRESS(&pinfo->src, AT_ETHER, tvb, 6, 6);
+ proto_tree_add_item(fh_tree, &hfi_sll_src_eth, tvb, 6, 6, ENC_NA);
break;
case 0:
break;
default:
- if (tree) {
- proto_tree_add_item(fh_tree, &hfi_sll_src_other, tvb,
+ proto_tree_add_item(fh_tree, &hfi_sll_src_other, tvb,
6, halen > 8 ? 8 : halen, ENC_NA);
- }
break;
}
diff --git a/epan/dissectors/packet-sna.c b/epan/dissectors/packet-sna.c
index 381b395b7b..5d054adc4b 100644
--- a/epan/dissectors/packet-sna.c
+++ b/epan/dissectors/packet-sna.c
@@ -1646,7 +1646,6 @@ dissect_fid0_1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree *bf_tree;
proto_item *bf_item;
guint8 th_0;
- const guint8 *ptr;
const int bytes_in_header = 10;
@@ -1669,21 +1668,14 @@ dissect_fid0_1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
/* Set DST addr */
- ptr = tvb_get_ptr(tvb, 2, SNA_FID01_ADDR_LEN);
- SET_ADDRESS(&pinfo->net_dst, AT_SNA, SNA_FID01_ADDR_LEN, ptr);
- SET_ADDRESS(&pinfo->dst, AT_SNA, SNA_FID01_ADDR_LEN, ptr);
+ TVB_SET_ADDRESS(&pinfo->net_dst, AT_SNA, tvb, 2, SNA_FID01_ADDR_LEN);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_SNA, tvb, 2, SNA_FID01_ADDR_LEN);
- if (tree)
- proto_tree_add_item(tree, hf_sna_th_oaf, tvb, 4, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_sna_th_oaf, tvb, 4, 2, ENC_BIG_ENDIAN);
/* Set SRC addr */
- ptr = tvb_get_ptr(tvb, 4, SNA_FID01_ADDR_LEN);
- SET_ADDRESS(&pinfo->net_src, AT_SNA, SNA_FID01_ADDR_LEN, ptr);
- SET_ADDRESS(&pinfo->src, AT_SNA, SNA_FID01_ADDR_LEN, ptr);
-
- /* If we're not filling a proto_tree, return now */
- if (tree)
- return bytes_in_header;
+ TVB_SET_ADDRESS(&pinfo->net_src, AT_SNA, tvb, 4, SNA_FID01_ADDR_LEN);
+ TVB_SET_ADDRESS(&pinfo->src, AT_SNA, tvb, 4, SNA_FID01_ADDR_LEN);
proto_tree_add_item(tree, hf_sna_th_snf, tvb, 6, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_sna_th_dcf, tvb, 8, 2, ENC_BIG_ENDIAN);
@@ -1701,7 +1693,6 @@ dissect_fid2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree *bf_tree;
proto_item *bf_item;
guint8 th_0;
- const guint8 *ptr;
unsigned int mpf, id;
const int bytes_in_header = 6;
@@ -1729,17 +1720,15 @@ dissect_fid2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
/* Set DST addr */
- ptr = tvb_get_ptr(tvb, 2, SNA_FID2_ADDR_LEN);
- SET_ADDRESS(&pinfo->net_dst, AT_SNA, SNA_FID2_ADDR_LEN, ptr);
- SET_ADDRESS(&pinfo->dst, AT_SNA, SNA_FID2_ADDR_LEN, ptr);
+ TVB_SET_ADDRESS(&pinfo->net_dst, AT_SNA, tvb, 2, SNA_FID2_ADDR_LEN);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_SNA, tvb, 2, SNA_FID2_ADDR_LEN);
/* Byte 3 */
proto_tree_add_item(tree, hf_sna_th_oaf, tvb, 3, 1, ENC_BIG_ENDIAN);
/* Set SRC addr */
- ptr = tvb_get_ptr(tvb, 3, SNA_FID2_ADDR_LEN);
- SET_ADDRESS(&pinfo->net_src, AT_SNA, SNA_FID2_ADDR_LEN, ptr);
- SET_ADDRESS(&pinfo->src, AT_SNA, SNA_FID2_ADDR_LEN, ptr);
+ TVB_SET_ADDRESS(&pinfo->net_src, AT_SNA, tvb, 3, SNA_FID2_ADDR_LEN);
+ TVB_SET_ADDRESS(&pinfo->src, AT_SNA, tvb, 3, SNA_FID2_ADDR_LEN);
id = tvb_get_ntohs(tvb, 4);
proto_tree_add_item(tree, hf_sna_th_snf, tvb, 4, 2, ENC_BIG_ENDIAN);
diff --git a/epan/dissectors/packet-tipc.c b/epan/dissectors/packet-tipc.c
index 4ecb4474f0..9dd92234b2 100644
--- a/epan/dissectors/packet-tipc.c
+++ b/epan/dissectors/packet-tipc.c
@@ -2034,7 +2034,6 @@ dissect_tipc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
guint8 hdr_size;
guint8 user;
gchar *addr_str_ptr;
- const guchar *src_addr, *dst_addr;
tvbuff_t *data_tvb, *tipc_tvb;
gboolean datatype_hdr = FALSE;
guint8 msg_type = 0;
@@ -2070,22 +2069,18 @@ dissect_tipc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
/* Data type header */
if (hdr_size > 5 && user <4) {
/* W6 Originating Processor */
- src_addr = tvb_get_ptr(tipc_tvb, offset + 24, 4);
- SET_ADDRESS(&pinfo->src, AT_TIPC, 4, src_addr);
+ TVB_SET_ADDRESS(&pinfo->src, AT_TIPC, tipc_tvb, offset + 24, 4);
/* W7 Destination Processor */
- dst_addr = tvb_get_ptr(tipc_tvb, offset + 28, 4);
- SET_ADDRESS(&pinfo->dst, AT_TIPC, 4, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_TIPC, tipc_tvb, offset + 28, 4);
} else {
/* Short data hdr */
/* W2 Previous Processor */
- src_addr = tvb_get_ptr(tipc_tvb, offset + 8, 4);
- SET_ADDRESS(&pinfo->src, AT_TIPC, 4, src_addr);
+ TVB_SET_ADDRESS(&pinfo->src, AT_TIPC, tipc_tvb, offset + 8, 4);
}
} else {
/* W2 Previous Processor */
- src_addr = tvb_get_ptr(tipc_tvb, offset + 8, 4);
- SET_ADDRESS(&pinfo->src, AT_TIPC, 4, src_addr);
+ TVB_SET_ADDRESS(&pinfo->src, AT_TIPC, tipc_tvb, offset + 8, 4);
}
break;
case TIPCv2:
@@ -2110,35 +2105,28 @@ dissect_tipc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
if (datatype_hdr) {
if (hdr_size > 6) {
/* W6 Originating Processor */
- src_addr = tvb_get_ptr(tipc_tvb, offset + 24, 4);
- SET_ADDRESS(&pinfo->src, AT_TIPC, 4, src_addr);
+ TVB_SET_ADDRESS(&pinfo->src, AT_TIPC, tipc_tvb, offset + 24, 4);
/* W7 Destination Processor */
- dst_addr = tvb_get_ptr(tipc_tvb, offset + 28, 4);
- SET_ADDRESS(&pinfo->dst, AT_TIPC, 4, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_TIPC, tipc_tvb, offset + 28, 4);
} else {
/* W3 Previous Processor */
- src_addr = tvb_get_ptr(tipc_tvb, offset + 12, 4);
- SET_ADDRESS(&pinfo->src, AT_TIPC, 4, src_addr);
+ TVB_SET_ADDRESS(&pinfo->src, AT_TIPC, tipc_tvb, offset + 12, 4);
}
} else {
if (user != TIPCv2_NEIGHBOUR_DISCOVERY) {
/* W6 Originating Processor */
- src_addr = tvb_get_ptr(tipc_tvb, offset + 24, 4);
- SET_ADDRESS(&pinfo->src, AT_TIPC, 4, src_addr);
+ TVB_SET_ADDRESS(&pinfo->src, AT_TIPC, tipc_tvb, offset + 24, 4);
/* W7 Destination Processor */
- dst_addr = tvb_get_ptr(tipc_tvb, offset + 28, 4);
- SET_ADDRESS(&pinfo->dst, AT_TIPC, 4, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_TIPC, tipc_tvb, offset + 28, 4);
} else {
/* W2 Destination Domain */
- dst_addr = tvb_get_ptr(tipc_tvb, offset + 8, 4);
- SET_ADDRESS(&pinfo->dst, AT_TIPC, 4, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_TIPC, tipc_tvb, offset + 8, 4);
/* W3 Previous Node */
- src_addr = tvb_get_ptr(tipc_tvb, offset + 12, 4);
- SET_ADDRESS(&pinfo->src, AT_TIPC, 4, src_addr);
+ TVB_SET_ADDRESS(&pinfo->src, AT_TIPC, tipc_tvb, offset + 12, 4);
}
}
break;
diff --git a/epan/dissectors/packet-vines.c b/epan/dissectors/packet-vines.c
index acc5d39f3e..0d8ea850eb 100644
--- a/epan/dissectors/packet-vines.c
+++ b/epan/dissectors/packet-vines.c
@@ -535,7 +535,7 @@ dissect_vines_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
guint8 vip_proto;
proto_tree *vip_tree, *tctl_tree;
proto_item *ti;
- const guint8 *dst_addr, *src_addr;
+ const guint8 *dst_addr;
gboolean is_broadcast = FALSE;
tvbuff_t *next_tvb;
@@ -553,12 +553,11 @@ dissect_vines_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
val_to_str_const(vip_tctl, proto_vals, "Unknown VIP protocol"),
vip_tctl);
- src_addr = tvb_get_ptr(tvb, offset+12, VINES_ADDR_LEN);
- SET_ADDRESS(&pinfo->net_src, AT_VINES, VINES_ADDR_LEN, src_addr);
- SET_ADDRESS(&pinfo->src, AT_VINES, VINES_ADDR_LEN, src_addr);
+ TVB_SET_ADDRESS(&pinfo->net_src, AT_VINES, tvb, offset+12, VINES_ADDR_LEN);
+ TVB_SET_ADDRESS(&pinfo->src, AT_VINES, tvb, offset+12, VINES_ADDR_LEN);
dst_addr = tvb_get_ptr(tvb, offset+6, VINES_ADDR_LEN);
- SET_ADDRESS(&pinfo->net_dst, AT_VINES, VINES_ADDR_LEN, dst_addr);
- SET_ADDRESS(&pinfo->dst, AT_VINES, VINES_ADDR_LEN, dst_addr);
+ TVB_SET_ADDRESS(&pinfo->net_dst, AT_VINES, tvb, offset+6, VINES_ADDR_LEN);
+ TVB_SET_ADDRESS(&pinfo->dst, AT_VINES, tvb, offset+6, VINES_ADDR_LEN);
/* helpers to transport control */
if (memcmp(dst_addr, bcast_addr, VINES_ADDR_LEN) == 0)