Wireshark-dev: Re: [Wireshark-dev] The recent changes to proto.c appear to have broken things b
From: Jeff Morriss <jeff.morriss.ws@xxxxxxxxx>
Date: Mon, 04 Aug 2014 09:57:31 -0400
On 08/03/14 23:32, Evan Huus wrote:
On Sun, Aug 3, 2014 at 11:20 PM, Bill Meier <wmeier@xxxxxxxxxxx
<mailto:wmeier@xxxxxxxxxxx>> wrote:

    Specifically:

    For some/many/all? dissectors, the protocol never appears in the
    'protocol' column', isn't in the list of protos, filters for the
    protocol don't work. etc etc

    I guess something fails with respect to the
    proto_tree_add_item(..., proto_..., ...) call.

    Oddly enough, the actual dissection for the protocol does appear in
    the details pane.

    I believe the changes (5460d7f & 3da89d6) should be reverted until
    they are properly tested/fixed.

    (When i reverted these two commits to proto.c, things were OK again.

    Bill


OK, yes, this is very strange.

The result of that change should be only that we *don't* fake the tree
item in certain uncommon cases - it certainly shouldn't be causing wider
problems like this. My understanding is that we should be able to, e.g.
randomly not fake the tree 10% of the time without causing problems as
it is an optimization only, so I'm not sure why adding *any* extra
condition at all would break things like this.

Is TRY_TO_FAKE_THIS_ITEM ever more than an optimization? Does anyone
else know why *not* faking the tree could cause problems?

I noticed this morning that I get warnings like:

09:11:52          Warn Dissector bug, protocol TCP, in packet 1: "Kind" - "tcp.option_kind" tfi->tree_type: 4294967295 invalid (../../epan/proto.c:3791)
09:47:37          Warn Dissector bug, protocol GTPv2, in packet 1: "Mobile Country Code (MCC)" - "e212.mcc" tfi->tree_type: 4294967295 invalid (../../epan/proto.c:3791)

If I back out the quoted changes the warnings go away.