Comment # 12
on bug 9826
from Guy Harris
(In reply to Guy Harris from comment #5)
> Something *very* strange is going on here, and papering over the problem by
> suppressing multiple occurrences of the message, rather than figuring out
> why the first time BoundsError is thrown doesn't terminate dissection, would
> be unwise. There might be other problems resulting from this that might
> *not* be fixed by the crude "simple" solution.
Two bugs:
1) The Parallel Redundancy Protocol post-dissector was checking to see
whether the packet had a PRP trailer before dissecting the trailer, but the
code to check would throw an exception if the packet was cut sufficiently short
by a snapshot length. This meant that after a regular dissector threw a
BoundsError exception, the dissection code would then call all the
post-dissectors, and would get a *second* BoundsError exception. I fixed it to
check whether the trailer data being checked exists before looking at it.
2) That dissector is *supposed* to be disabled by default, but if I switch
back and forth between profiles a couple of times, it gets enabled even though
it shouldn't be. I'll look at fixing that.
dissect_frame() should perhaps also remember if an exception was thrown when
the dissection was done and, if that exception is thrown again by the
post-dissector, not append to the Info column. On the other hand, that would
have meant that bugs 1) and 2) wouldn't have been detected, so.... (Perhaps
post-dissector exceptions should be treated as dissector bugs.)
You are receiving this mail because:
- You are watching all bug changes.