Wireshark-dev: Re: [Wireshark-dev] DISSECTOR_ASSERT_NOT_REACHED in WLCCP decode...
From: Jeff Morriss <jeff.morriss@xxxxxxxxxxx>
Date: Tue, 29 May 2007 09:48:10 +0800


Kevin A. Noll wrote:
I am progressing on my updated WLCCP dissector, but I've run into another
(amateur) issue. This protocol allows TLVs to be tacked on to the end of a
packet with no indication of how many or how long they are until you start
reading the TLVs and iterate through them until you get to the end of the
tvbuff.

I am successfully (sort of) doing this iteration and decoding all of the TLV
fields, but on every one, the last field (the one that runs to the end of
the tvbuff) is not added to the proto_tree (even though I have the
appropriate proto_tree_add). Instead I am getting an exception that says
"Dissector bug... failed assertion DISSECTOR_ASSERT_NOT_REACHED".

I've looked at the definitions for the DISSECTOR_ASSERTs in proto.h and
can't quite figure out what this means. I've set the
WIRESHARK_ABORT_ON_DISSECTOR_BUG environment variable, but no stack trace is
printed when it aborts.

ABORT_ON_DISSECTOR_BUG won't generate a stack trace but it should generate a core file (from which you can get a backtrace).

What platform are you on? If Unix (especially Linux), check your your core 'ulimit' (do: "ulimit -c unlimited"). A lot of Linux distros disable core files by default these days. :-(

If I had to make a wild guess (based on experience?), I'd say that there might be something wrong with the registration of that last hf_ entry you're adding.