produce different errors. The four variants differ only in the
definition of the ERROR nonterminal and are otherwise identical.
-NOTE that Protocol 4 (for the current svn trunk, which will eventually
-become 3.7.x) is still under development. The text herein should not
-be regarded as the final definition.
+NOTE that Protocol 4 (for the current git master) is still under development.
+The text herein should not be regarded as the final definition.
Identification of Protocols
This is a small enumeration indicating roughly the nature of an error.
The possible values are:
- InvalidFree
+ UninitValue
- free/delete/delete[] on an invalid pointer
+ other use of undefined value (primarily memory addresses)
- MismatchedFree
+ UninitCondition
- free/delete/delete[] does not match allocation function
- (eg doing new[] then free on the result)
+ conditional jump/move depends on undefined value
+
+ CoreMemError
+
+ caused by unaddressable bytes in a signal handler frame
InvalidRead
jump to an invalid address
- Overlap
-
- args overlap other otherwise bogus in eg memcpy
-
- InvalidMemPool
+ SyscallParam
- invalid mem pool specified in client request
+ system call params are undefined or point to
+ undefined/unaddressible memory
- UninitCondition
+ ClientCheck
- conditional jump/move depends on undefined value
+ "error" resulting from a client check request
- UninitValue
+ InvalidFree
- other use of undefined value (primarily memory addresses)
+ free/delete/delete[] on an invalid pointer
- SyscallParam
+ MismatchedFree
- system call params are undefined or point to
- undefined/unaddressible memory
+ free/delete/delete[] does not match allocation function
+ (eg doing new[] then free on the result)
- ClientCheck
+ Overlap
- "error" resulting from a client check request
+ args overlap other otherwise bogus in eg memcpy
Leak_DefinitelyLost
memory leak; pointers to un-freed blocks are still available
+ InvalidMemPool
+
+ invalid mem pool specified in client request
+
+ FishyValue
+
+ arguments to memory allocation function are very large,
+ indicating probable integer overflow or cast from negative signed
+
====================================================================