On 26/04/2010 10:35, Graham Bloice wrote: > On 26/04/2010 10:10, ankur madan wrote: >> I have latest version code from the svn and latest development >> wireshark version.1.3.4 installed.i am still not able to resolve this >> issue.any help or comments are welcome >> >> thanks >> ankur >> >> On Mon, Apr 26, 2010 at 12:51 PM, ankur madan <ankurmad...@gmail.com >> <mailto:ankurmad...@gmail.com>> wrote: >> >> I am compiling on windows XP n 32 bit. >> >> >> On Mon, Apr 26, 2010 at 3:37 AM, Stephen Fisher >> <st...@stephen-fisher.com <mailto:st...@stephen-fisher.com>> wrote: >> >> On Fri, Apr 23, 2010 at 02:42:35PM +0530, ankur madan wrote: >> >> > packet-ieee802154.c(982) : warning C4244: '=' : conversion from >> > 'guint64' to 'gu int32', possible loss of data >> >> I see that you're compiling on Windows, but which version and >> is it >> 32-bit or 64-bit? >> >> > Personally I'm just carrying fixes to this in my local source tree as > I haven't had time to push a patch back into the repo. I don't know > why this compiles OK on the buildbot and not with VC8. > > IMHO the current code is incorrect as it incorrectly casts a 32 bit > value to a 64 bit one and then calls proto_tree_add_uint64 with it > when the value really is a 32 bit one (lines 981-985): > > if (packet->key_id_mode == KEY_ID_MODE_KEY_EXPLICIT_4) { > packet->key_source.addr32 = tvb_get_ntohl(tvb, offset); > proto_tree_add_uint64(field_tree, > hf_ieee802154_aux_sec_key_source, tvb, offset, 4, > packet->key_source.addr32); > proto_item_set_len(ti, 1 + 4); > offset += sizeof (guint32); > > and the other errors simply need a cast to gchar to allow them to > compile (lines 2006 - 2013). > > I've attached a patch that works for me. > Oops. Compile before posting, the last second change to proto_tree_add_uint64 should have been to proto_tree_add_uint. Corrected patch supplied.
Also note that if you are using VC8 you may run into other compilation or run-time issues. I strongly recommend you grab a copy of the VS 2008 Express edition or even the 2010 version if you want to live at the bleeding edge. -- Regards, Graham Bloice
Index: packet-ieee802154.c =================================================================== --- packet-ieee802154.c (revision 32563) +++ packet-ieee802154.c (working copy) @@ -979,8 +979,8 @@ field_tree = proto_item_add_subtree(ti, ett_ieee802154_aux_sec_key_id); /* Add key source, if it exists. */ if (packet->key_id_mode == KEY_ID_MODE_KEY_EXPLICIT_4) { - packet->key_source.addr32 = (guint64) tvb_get_ntohl(tvb, offset); - proto_tree_add_uint64(field_tree, hf_ieee802154_aux_sec_key_source, tvb, offset, 4, packet->key_source.addr32); + packet->key_source.addr32 = tvb_get_ntohl(tvb, offset); + proto_tree_add_uint(field_tree, hf_ieee802154_aux_sec_key_source, tvb, offset, 4, packet->key_source.addr32); proto_item_set_len(ti, 1 + 4); offset += sizeof (guint32); } @@ -2003,14 +2003,14 @@ if (adata) block[i] |= (1 << 6); /* Adata */ i++; /* Nonce: Source Address || Frame Counter || Security Level */ - block[i++] = (addr >> 56) & 0xff; - block[i++] = (addr >> 48) & 0xff; - block[i++] = (addr >> 40) & 0xff; - block[i++] = (addr >> 32) & 0xff; - block[i++] = (addr >> 24) & 0xff; - block[i++] = (addr >> 16) & 0xff; - block[i++] = (addr >> 8) & 0xff; - block[i++] = (addr >> 0) & 0xff; + block[i++] = (gchar)((addr >> 56) & 0xff); + block[i++] = (gchar)((addr >> 48) & 0xff); + block[i++] = (gchar)((addr >> 40) & 0xff); + block[i++] = (gchar)((addr >> 32) & 0xff); + block[i++] = (gchar)((addr >> 24) & 0xff); + block[i++] = (gchar)((addr >> 16) & 0xff); + block[i++] = (gchar)((addr >> 8) & 0xff); + block[i++] = (gchar)((addr >> 0) & 0xff); block[i++] = (counter >> 24) & 0xff; block[i++] = (counter >> 16) & 0xff; block[i++] = (counter >> 8) & 0xff;
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe