aboutsummaryrefslogtreecommitdiffstats
path: root/epan/exceptions.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2005-08-02 08:42:02 +0000
committerGuy Harris <guy@alum.mit.edu>2005-08-02 08:42:02 +0000
commitb9ba0508bc1751b1b612c805d0c52fd781141fa9 (patch)
treeb26719f190eb986ceed39a9b1fa8bc6531d03b24 /epan/exceptions.h
parenta0f94c125f5d00b938c83a6f4f04fa46ed436760 (diff)
Explain the BoundsError and ReportedBoundsError errors a bit more, as
per Ulf Lamping's request. svn path=/trunk/; revision=15193
Diffstat (limited to 'epan/exceptions.h')
-rw-r--r--epan/exceptions.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/epan/exceptions.h b/epan/exceptions.h
index 436311b929..66bbcce485 100644
--- a/epan/exceptions.h
+++ b/epan/exceptions.h
@@ -13,6 +13,10 @@
/**
Index is out of range.
An attempt was made to read past the end of a buffer.
+ This generally means that the capture was done with a "slice"
+ length or "snapshot" length less than the maximum packet size,
+ and a link-layer packet was cut short by that, so not all of the
+ data in the link-layer packet was available.
**/
#define BoundsError 1
@@ -22,6 +26,17 @@
differs from a BoundsError in that the parent protocol established a
limit past which this dissector should not process in the buffer and that
limit was execeeded.
+ This generally means that the packet is invalid, i.e. whatever
+ code constructed the packet and put it on the wire didn't put enough
+ data into it. It is therefore currently reported as a "Malformed
+ packet".
+ However, it also happens in some cases where the packet was fragmented
+ and the fragments weren't reassembled. We need to add another length
+ field to a tvbuff, so that "length of the packet from the link layer"
+ and "length of the packet were it fully reassembled" are different,
+ and going past the first of those without going past the second would
+ throw a different exception, which would be reported as an "Unreassembled
+ packet" rather than a "Malformed packet".
**/
#define ReportedBoundsError 2