| Previous | Next |
| STATUS_INTEGER_DIVIDE_BY_ZERO | STATUS_PRIVILEGED_INSTRUCTION |
STATUS_INTEGER_OVERFLOW
Checked integer arithmetic exceeded its destination range
This exception is raised by an explicit checked-overflow mechanism, such as an architecture instruction or runtime check. Normal unsigned C and C++ arithmetic wraps without raising it, and ordinary signed overflow can be undefined at the language level, so the status usually means that code deliberately requested trapping or translated a checked-language overflow into SEH.
Identify the exact instruction or runtime helper before assuming which expression overflowed. Capture the source operands, signedness, and destination width. A value that became too large may originate in attacker-controlled length arithmetic, unit conversion, accumulation, or a preceding truncation. Replacing the checked operation with unchecked arithmetic hides the symptom and can turn it into memory corruption.
What to inspect
- Record operand values, signedness, and target width.
- Determine whether the compiler, runtime, or explicit instruction enabled checked arithmetic.
- Audit related size, count, and allocation calculations for wraparound.
- Keep the overflow check and fix the invalid range at its source.
References
- Microsoft Learn: Specific Exceptions
- Microsoft Learn: EXCEPTION_RECORD
- Microsoft Learn: Exception Dispatching
- Microsoft Windows SDK metadata: ntstatus.h
Looking for a different code? Search another status or error code.