2015-01-20 20:09 GMT+01:00 Alexis La Goutte <[email protected]>:

> Hi Robert,
>
> it is possible to push your patch on Gerrit ? and/or also create a bug in
> bugtracker ? (with pcap sample) for try
>
> Regards,
>

See https://code.wireshark.org/review/#/c/6695/1

Regards,
Pascal.


> On Tue, Jan 20, 2015 at 7:29 PM, Robert Cragie <
> [email protected]> wrote:
>
>> Recent commit ecaa1f8d21b1284a267ca08d4d698ca99fbcab83 (onvert variables
>> that were static just because of SET_ADDRESS macro to use the proper
>> pinfo->pool instead) has introduced an error in packet-ieee802154.c. The
>> extended addresses were network byte order before but are now being
>> interpreted the other way around. Perhaps there is still a way of using
>> TVB_SET_ADDRESS but it is not obvious to me right now. I reverted as
>> follows (note I am using an experimental version of packet-ieee802154.c so
>> the line numbers may be different):
>>
>> diff --git a/epan/dissectors/packet-ieee802154.c
>> b/epan/dissectors/packet-ieee802154.c
>> index 0c2bc84..ca0b8cb 100644
>> --- a/epan/dissectors/packet-ieee802154.c
>> +++ b/epan/dissectors/packet-ieee802154.c
>> @@ -768,16 +768,21 @@ dissect_ieee802154_common(tvbuff_t *tvb,
>> packet_info *pinfo, proto_tree *tree, g
>>          offset += 2;
>>      }
>>      else if (packet->dst_addr_mode == IEEE802154_FCF_ADDR_EXT) {
>> +        static guint64 addr; /* has to be static due to SET_ADDRESS */
>> +
>>          /* Get the address */
>>          packet->dst64 = tvb_get_letoh64(tvb, offset);
>>
>> +        /* Copy and convert the address to network byte order. */
>> +        addr = pntoh64(&(packet->dst64));
>> +
>>          /* Display the destination address. */
>>          /* XXX - OUI resolution doesn't happen when displaying resolved
>>           * EUI64 addresses; that should probably be fixed in
>>           * epan/addr_resolv.c.
>>           */
>> -        TVB_SET_ADDRESS(&pinfo->dl_dst, AT_EUI64, tvb, offset, 8);
>> -        TVB_SET_ADDRESS(&pinfo->dst, AT_EUI64, tvb, offset, 8);
>> +        SET_ADDRESS(&pinfo->dl_dst, AT_EUI64, 8, &addr);
>> +        SET_ADDRESS(&pinfo->dst, AT_EUI64, 8, &addr);
>>          if (tree) {
>>              proto_tree_add_item(ieee802154_tree, hf_ieee802154_dst64,
>> tvb, offset, 8, ENC_LITTLE_ENDIAN);
>>              proto_item_append_text(proto_root, ", Dst: %s",
>> eui64_to_display(wmem_packet_scope(), packet->dst64));
>> @@ -876,16 +881,21 @@ dissect_ieee802154_common(tvbuff_t *tvb,
>> packet_info *pinfo, proto_tree *tree, g
>>          offset += 2;
>>      }
>>      else if (packet->src_addr_mode == IEEE802154_FCF_ADDR_EXT) {
>> +        static guint64 addr; /* has to be static due to SET_ADDRESS */
>> +
>>          /* Get the address. */
>>          packet->src64 = tvb_get_letoh64(tvb, offset);
>>
>> +        /* Copy and convert the address to network byte order. */
>> +        addr = pntoh64(&(packet->src64));
>> +
>>          /* Display the source address. */
>>          /* XXX - OUI resolution doesn't happen when displaying resolved
>>           * EUI64 addresses; that should probably be fixed in
>>           * epan/addr_resolv.c.
>>           */
>> -        TVB_SET_ADDRESS(&pinfo->dl_src, AT_EUI64, tvb, offset, 8);
>> -        TVB_SET_ADDRESS(&pinfo->src, AT_EUI64, tvb, offset, 8);
>> +        SET_ADDRESS(&pinfo->dl_src, AT_EUI64, 8, &addr);
>> +        SET_ADDRESS(&pinfo->src, AT_EUI64, 8, &addr);
>>          if (tree) {
>>              proto_tree_add_item(ieee802154_tree, hf_ieee802154_src64,
>> tvb, offset, 8, ENC_LITTLE_ENDIAN);
>>              proto_item_append_text(proto_root, ", Src: %s",
>> eui64_to_display(wmem_packet_scope(), packet->src64));
>>
>>
>>
>> ___________________________________________________________________________
>> 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
>>
>
>
> ___________________________________________________________________________
> 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
>
___________________________________________________________________________
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

Reply via email to