Squelch some compiler warnings (including warnings about the last member

of a structure being an empty array; that is *not* supported by all the
compilers that can be used to build Wireshark).

svn path=/trunk/; revision=32412
This commit is contained in:
Guy Harris 2010-04-07 00:34:20 +00:00
parent 69df32fb11
commit 5c394ee15f
1 changed files with 30 additions and 26 deletions

View File

@ -402,8 +402,8 @@ struct lowpan_nhdr {
guint8 proto;
guint length;
guint reported;
guint8 hdr[];
};
#define LOWPAN_NHDR_DATA(nhdr) ((guint8 *)(nhdr) + sizeof (struct lowpan_nhdr))
/* Dissector prototypes */
static void proto_init_6lowpan (void);
@ -474,7 +474,7 @@ lowpan_addr16_to_ifcid(guint16 addr, guint16 pan, guint8 *ifcid)
static gboolean
lowpan_dlsrc_to_ifcid(packet_info *pinfo, guint8 *ifcid)
{
ieee802154_packet * packet = pinfo->private_data;
ieee802154_packet * packet = (ieee802154_packet *)pinfo->private_data;
/* Check the link-layer address field. */
if (pinfo->dl_src.type == AT_EUI64) {
@ -519,7 +519,7 @@ lowpan_dlsrc_to_ifcid(packet_info *pinfo, guint8 *ifcid)
static gboolean
lowpan_dldst_to_ifcid(packet_info *pinfo, guint8 *ifcid)
{
ieee802154_packet * packet = pinfo->private_data;
ieee802154_packet * packet = (ieee802154_packet *)pinfo->private_data;
/* Check the link-layer address field. */
if (pinfo->dl_dst.type == AT_EUI64) {
@ -578,13 +578,13 @@ lowpan_reassemble_ipv6(tvbuff_t *tvb, struct ip6_hdr *ipv6, struct lowpan_nhdr *
ipv6->ip6_plen = g_ntohs(reported);
/* Allocate a buffer for the packet and copy in the IPv6 header. */
buffer = g_malloc(length + sizeof(struct ip6_hdr));
buffer = (guint8 *)g_malloc(length + sizeof(struct ip6_hdr));
memcpy(buffer, ipv6, sizeof(struct ip6_hdr));
cursor = buffer + sizeof(struct ip6_hdr);
/* Add the next headers into the buffer. */
for (nhdr = nhdr_list; nhdr; nhdr = nhdr->next) {
memcpy(cursor, nhdr->hdr, nhdr->length);
memcpy(cursor, LOWPAN_NHDR_DATA(nhdr), nhdr->length);
cursor += nhdr->length;
};
@ -1080,15 +1080,15 @@ dissect_6lowpan_hc1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dg
/* Construct the next header for the UDP datagram. */
offset = BITS_TO_BYTE_LEN(0, bit_offset);
length = tvb_length_remaining(tvb, offset);
nhdr_list = ep_alloc(sizeof(struct lowpan_nhdr) + sizeof(struct udp_hdr) + length);
nhdr_list = (struct lowpan_nhdr *)ep_alloc(sizeof(struct lowpan_nhdr) + sizeof(struct udp_hdr) + length);
nhdr_list->next = NULL;
nhdr_list->proto = IP_PROTO_UDP;
nhdr_list->length = length + sizeof(struct udp_hdr);
nhdr_list->reported = g_ntohs(udp.length);
/* Copy the UDP header into the buffer. */
memcpy(nhdr_list->hdr, &udp, sizeof(struct udp_hdr));
tvb_memcpy(tvb, nhdr_list->hdr + sizeof(struct udp_hdr), offset, length);
memcpy(LOWPAN_NHDR_DATA(nhdr_list), &udp, sizeof(struct udp_hdr));
tvb_memcpy(tvb, LOWPAN_NHDR_DATA(nhdr_list) + sizeof(struct udp_hdr), offset, length);
}
/*=====================================================
* Reconstruct the IPv6 Packet
@ -1096,7 +1096,7 @@ dissect_6lowpan_hc1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dg
*/
else {
offset = BITS_TO_BYTE_LEN(0, bit_offset);
nhdr_list = ep_alloc(sizeof(struct lowpan_nhdr) + tvb_length_remaining(tvb, offset));
nhdr_list = (struct lowpan_nhdr *)ep_alloc(sizeof(struct lowpan_nhdr) + tvb_length_remaining(tvb, offset));
nhdr_list->next = NULL;
nhdr_list->proto = ipv6.ip6_nxt;
nhdr_list->length = tvb_length_remaining(tvb, offset);
@ -1106,7 +1106,7 @@ dissect_6lowpan_hc1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dg
else {
nhdr_list->reported = dgram_size - sizeof(struct ip6_hdr);
}
tvb_memcpy(tvb, nhdr_list->hdr, offset, nhdr_list->length);
tvb_memcpy(tvb, LOWPAN_NHDR_DATA(nhdr_list), offset, nhdr_list->length);
}
/* Link the reassembled tvbuff together. */
@ -1492,7 +1492,7 @@ dissect_6lowpan_iphc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint d
}
/* Create an extension header for the remaining payload. */
else {
nhdr_list = ep_alloc(sizeof(struct lowpan_nhdr) + tvb_length_remaining(tvb, offset));
nhdr_list = (struct lowpan_nhdr *)ep_alloc(sizeof(struct lowpan_nhdr) + tvb_length_remaining(tvb, offset));
nhdr_list->next = NULL;
nhdr_list->proto = ipv6.ip6_nxt;
nhdr_list->length = tvb_length_remaining(tvb, offset);
@ -1502,7 +1502,7 @@ dissect_6lowpan_iphc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint d
else {
nhdr_list->reported = dgram_size - sizeof(struct ip6_hdr);
}
tvb_memcpy(tvb, nhdr_list->hdr, offset, nhdr_list->length);
tvb_memcpy(tvb, LOWPAN_NHDR_DATA(nhdr_list), offset, nhdr_list->length);
}
/*=====================================================
@ -1587,7 +1587,7 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
length = (length + 7) & ~0x7;
/* Create the next header structure for the IPv6 extension header. */
nhdr = ep_alloc0(sizeof(struct lowpan_nhdr) + length);
nhdr = (struct lowpan_nhdr *)ep_alloc0(sizeof(struct lowpan_nhdr) + length);
nhdr->next = NULL;
nhdr->proto = ext_proto;
nhdr->length = length;
@ -1599,7 +1599,7 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
}
ipv6_ext.ip6e_len = nhdr->reported>>3; /* Convert to units of 8 bytes. */
ipv6_ext.ip6e_len -= 1; /* Don't include the first 8 bytes. */
memcpy(nhdr->hdr, &ipv6_ext, sizeof(struct ip6_ext));
memcpy(LOWPAN_NHDR_DATA(nhdr), &ipv6_ext, sizeof(struct ip6_ext));
/*
* If the extension header was truncated, display the remainder using
@ -1611,7 +1611,7 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
/* Copy the remainder, and truncate the real buffer length. */
nhdr->length = tvb_length_remaining(tvb, offset) + sizeof(struct ip6_ext);
tvb_memcpy(tvb, nhdr->hdr + sizeof(struct ip6_ext), offset, tvb_length_remaining(tvb, offset));
tvb_memcpy(tvb, LOWPAN_NHDR_DATA(nhdr) + sizeof(struct ip6_ext), offset, tvb_length_remaining(tvb, offset));
/* There is nothing more we can do. */
return nhdr;
@ -1621,7 +1621,7 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
call_dissector(data_handle, tvb_new_subset(tvb, offset, ext_len, ext_len), pinfo, nhc_tree);
/* Copy the extension header into the struct. */
tvb_memcpy(tvb, nhdr->hdr + sizeof(struct ip6_ext), offset, ext_len);
tvb_memcpy(tvb, LOWPAN_NHDR_DATA(nhdr) + sizeof(struct ip6_ext), offset, ext_len);
offset += ext_len;
if (ext_flags & LOWPAN_NHC_EXT_NHDR) {
@ -1633,7 +1633,7 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
}
else {
/* Create another next header structure for the remaining payload. */
nhdr->next = ep_alloc(sizeof(struct lowpan_nhdr) + tvb_length_remaining(tvb, offset));
nhdr->next = (struct lowpan_nhdr *)ep_alloc(sizeof(struct lowpan_nhdr) + tvb_length_remaining(tvb, offset));
nhdr->next->next = NULL;
nhdr->next->proto = ipv6_ext.ip6e_nxt;
nhdr->next->length = tvb_length_remaining(tvb, offset);
@ -1643,7 +1643,7 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
else {
nhdr->next->reported = dgram_size - ext_len - sizeof(struct ip6_ext);
}
tvb_memcpy(tvb, nhdr->next->hdr, offset, nhdr->next->length);
tvb_memcpy(tvb, LOWPAN_NHDR_DATA(nhdr->next), offset, nhdr->next->length);
}
/* Done. */
@ -1785,15 +1785,15 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
#endif
/* Create the next header structure for the UDP datagram. */
nhdr = ep_alloc(sizeof(struct lowpan_nhdr) + sizeof(struct udp_hdr) + tvb_length_remaining(tvb, offset));
nhdr = (struct lowpan_nhdr *)ep_alloc(sizeof(struct lowpan_nhdr) + sizeof(struct udp_hdr) + tvb_length_remaining(tvb, offset));
nhdr->next = NULL;
nhdr->proto = IP_PROTO_UDP;
nhdr->length = tvb_length_remaining(tvb, offset) + sizeof(struct udp_hdr);
nhdr->reported = g_ntohs(udp.length);
/* Copy the UDP header and payload into the buffer. */
memcpy(nhdr->hdr, &udp, sizeof(struct udp_hdr));
tvb_memcpy(tvb, nhdr->hdr + sizeof(struct udp_hdr), offset, tvb_length_remaining(tvb, offset));
memcpy(LOWPAN_NHDR_DATA(nhdr), &udp, sizeof(struct udp_hdr));
tvb_memcpy(tvb, LOWPAN_NHDR_DATA(nhdr) + sizeof(struct udp_hdr), offset, tvb_length_remaining(tvb, offset));
return nhdr;
}
/*=====================================================
@ -1874,7 +1874,7 @@ dissect_6lowpan_mesh(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (pinfo->layer_names && pinfo->layer_names->str) {
/* Ensure the MAC layer is IEEE 802.15.4 */
if (strstr(pinfo->layer_names->str, "wpan") != NULL) {
ieee802154_packet * packet = pinfo->private_data;
ieee802154_packet * packet = (ieee802154_packet *)pinfo->private_data;
if (packet->src_addr_mode != IEEE802154_FCF_ADDR_NONE) src_pan = packet->src_pan;
if (packet->dst_addr_mode != IEEE802154_FCF_ADDR_NONE) dst_pan = packet->dst_pan;
}
@ -1915,11 +1915,13 @@ dissect_6lowpan_mesh(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
else {
guint16 addr16 = tvb_get_ntohs(tvb, offset);
guint8 * ifcid;
if (tree) {
proto_tree_add_uint(mesh_tree, hf_6lowpan_mesh_orig16, tvb, offset, sizeof(guint16), addr16);
}
src_ifcid = ep_alloc(sizeof(guint64));
lowpan_addr16_to_ifcid(addr16, src_pan, (guint8 *)src_ifcid);
ifcid = (guint8 *)ep_alloc(sizeof(guint64));
lowpan_addr16_to_ifcid(addr16, src_pan, ifcid);
src_ifcid = ifcid;
offset += sizeof(guint16);
}
SET_ADDRESS(&pinfo->src, AT_EUI64, sizeof(guint64), src_ifcid);
@ -1936,11 +1938,13 @@ dissect_6lowpan_mesh(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
else {
guint16 addr16 = tvb_get_ntohs(tvb, offset);
guint8 * ifcid;
if (tree) {
proto_tree_add_uint(mesh_tree, hf_6lowpan_mesh_dest16, tvb, offset, sizeof(guint16), addr16);
}
dst_ifcid = ep_alloc(sizeof(guint64));
lowpan_addr16_to_ifcid(addr16, dst_pan, (guint8 *)dst_ifcid);
ifcid = (guint8 *)ep_alloc(sizeof(guint64));
lowpan_addr16_to_ifcid(addr16, dst_pan, ifcid);
dst_ifcid = ifcid;
offset += sizeof(guint16);
}
SET_ADDRESS(&pinfo->dst, AT_EUI64, sizeof(guint64), dst_ifcid);