정수 오버플로(integer overflow)는 계산 결과가 정수 자료형으로 표현할 수 있는 범위를 벗어나는 일이다. 런타임이 사용하는 자료형의 크기와 언어의 연산 규칙을 함께 봐야 한다. (CERT C의 정수 연산 지침)
- 길이와 개수를 곱해 저장 공간을 구할 때는 결과가 표현 범위를 넘는지 확인한다. 입력값 각각이 허용 범위에 있어도 곱셈 결과는 넘칠 수 있다. (곱셈과 메모리 크기)
- C의 일반적인 부호 있는 정수 오버플로는 정의되지 않은 동작이다. 가장 작은 음수로 돌아올 것이라고 가정하지 않는다. (정의되지 않은 동작)
- 계산 후 결과를 검사하기 전에 이미 문제가 생길 수 있다. 연산 전에 범위를 확인하거나 오류를 알리는 검사 산술을 사용한다. (범위 검사와 안전한 연산)