diff options
-rw-r--r-- | epan/dissectors/packet-ap1394.c | 15 | ||||
-rw-r--r-- | epan/dissectors/packet-ax25.c | 10 | ||||
-rw-r--r-- | epan/dissectors/packet-bat.c | 23 | ||||
-rw-r--r-- | epan/dissectors/packet-batadv.c | 352 | ||||
-rw-r--r-- | epan/dissectors/packet-btbnep.c | 32 | ||||
-rw-r--r-- | epan/dissectors/packet-clnp.c | 12 | ||||
-rw-r--r-- | epan/dissectors/packet-eth.c | 12 | ||||
-rw-r--r-- | epan/dissectors/packet-exported_pdu.c | 21 | ||||
-rw-r--r-- | epan/dissectors/packet-infiniband.c | 32 | ||||
-rw-r--r-- | epan/dissectors/packet-ip.c | 15 | ||||
-rw-r--r-- | epan/dissectors/packet-ipx.c | 17 | ||||
-rw-r--r-- | epan/dissectors/packet-netrom.c | 10 | ||||
-rw-r--r-- | epan/dissectors/packet-p_mul.c | 14 | ||||
-rw-r--r-- | epan/dissectors/packet-sll.c | 25 | ||||
-rw-r--r-- | epan/dissectors/packet-sna.c | 29 | ||||
-rw-r--r-- | epan/dissectors/packet-tipc.c | 34 | ||||
-rw-r--r-- | epan/dissectors/packet-vines.c | 11 |
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) |