Wireshark-bugs: [Wireshark-bugs] [Bug 3290] TRY_TO_FAKE_THIS_ITEM disables bounds errors
Date: Sun, 1 Mar 2009 15:02:27 -0800 (PST)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3290


Jeff Morriss <jeff.morriss.ws@xxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|proto_add_item() doesn't    |TRY_TO_FAKE_THIS_ITEM
                   |test for bound errors if    |disables bounds errors
                   |tree is NULL                |




--- Comment #4 from Jeff Morriss <jeff.morriss.ws@xxxxxxxxx>  2009-03-01 15:02:26 PDT ---
So here's my analysis of the problem.

The problem is not the if(tree)s (since tree will be set whenever we have a
filter) but TRY_TO_FAKE_THIS_ITEM which avoids building items (including
checking for bounds errors) unless they are referenced by a filter.

Unless I'm wrong, that means we haven't been getting bounds errors from
proto_tree_add_*() since TRY_TO_FAKE_THIS_ITEM went in.  (I'm a little
uncomfortable asserting that since that means all the exceptions we /do/ get
are from tvb_*() accesses, but...)

I think Didier's patch makes sense but it would have to be propagated to all
the other calls too.

Question: should we be doing bounds checking even when we're not building the
tree?  Didier's patch does this but I'm split on whether it should.  In the
"old days" when dissectors had to check the tree we wouldn't have been, but I
do dislike the idea of things changing based on whether a filter is set.


-- 
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.