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 <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> I am compiling on windows XP n 32 bit.
>>
>>
>> On Mon, Apr 26, 2010 at 3:37 AM, Stephen Fisher
>> <[email protected] <mailto:[email protected]>> 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 <[email protected]>
Archives: http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
mailto:[email protected]?subject=unsubscribe