On Aug 3, 2019, at 7:47 AM, Oliver Brown <cellot...@gmail.com> wrote:

> Re:  https://code.wireshark.org/review/c/34169/
> 
> I've simply expanding definitions for existing flags in CDP packets, 
> specifically for four additional CDP capabilities, yet the Ubuntu pre-commit 
> check is failing due to code that shouldn't have anything to do with changes 
> I made. 
> epan/dissectors/packet-cdp.c:  FT_UINT8:         
> proto_tree_add_item(tlv_tree, hf_cdp_data, tvb, offset + 4, 2, 
> [[ENC_BIG_ENDIAN]-->[ENC_NA]]);
> It is not a descriptive message at all and it isn't entirely clear what the 
> issue is.

The pre-commit check appears to be broken, to the extent that it's showing a 
bogus field type value.

The issue is that "cdp.data" is of type FT_BYTES; a byte string has no byte 
order, so it should be added with ENC_NA, not ENC_BIG_ENDIAN.

> I saw this same issue when trying to commit, myself, but I simply skipped the 
> check since I don't believe its an issue.
> 
> To complicate matters, the "FT_UINT8" seemed to change each time I attempted 
> to commit, myself; it would be UINT8, UINT16, UINT32, BOOLEAN, BYTES, 
> STRINGZ, IPV4.. and without knowing what exactly the error is supposed to be, 
> it seems tedious to track down what the issue is.

Perhaps it's picking some random value to show.

> I've had a bit of a search and it seems, years ago, there was a mass change 
> to using ENC_NA everywhere.. which is perhaps what the error is trying to 
> suggest. Indeed, changing line 620 to use ENC_NA fixes this I believe - but 
> this shouldn't need to be changed, since it has remained this way for 2 
> years..
> 
> Additionally, it seems there was a legitimate reason why this is 
> ENC_BIG_ENDIAN, although I'm kind of curious to see examples (@Guy Harris, do 
> you have any example captures where you found this to be the case?). I'd be 
> happy to pick that up, but the point remains that I don't believe that this 
> should be causing an issue.
> 
>                 if (length == 6) {
>                     /*
>                      * This is some unknown value; it's typically 0x20 0x00,
>                      * which, as a big-endian value, is not a VLAN ID, as
>                      * VLAN IDs are 12 bits long.
>                      */
>                     proto_tree_add_item(tlv_tree, hf_cdp_data, tvb, offset + 
> 4, 2, ENC_BIG_ENDIAN);

That's not saying the value is big-endian.  It says that *if* you interpret it 
as a big-endian 2-byte value, it's not a VLAN ID, in contrast to the case where 
the length isn't 6 and where there *is* a 2-byte VLAN ID.

It should be fixed to use ENC_NA; I've done that in

        https://code.wireshark.org/review/c/34176/
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to