정수 오버플로는 일반적으로 관련된 변수의 유효성 검사가 부족하여 “야생” 증분/곱셈의 결과입니다. 예를 들어 다음 코드(OpenSolaris 커널에 영향을 주는 취약한 경로에서 가져온 코드;6 코드가 가독성을 향상시키기 위해 여기에 압축됨): 서명된 숫자에 대한 작업 결과가 없는 경우 오버플로 플래그가 설정됩니다. 하나는 피연산자의 징후에서 예측 할 것이다, 예를 들어, 두 개의 양수를 추가 할 때 부정적인 결과. 이는 오버플로가 발생하고 두 개의 보보체 형태로 표시된 서명된 결과가 지정된 비트 수에 맞지 않음을 나타냅니다. 변수에 서명된 정수 유형이 있는 경우 프로그램은 변수에 항상 양수 값이 포함되어 있다고 가정할 수 있습니다. 정수 오버플로는 값이 래핑되고 음수가 되어 프로그램의 가정을 위반하고 예기치 않은 동작으로 이어질 수 있습니다(예기치 않은 동작으로 이어질 수 있습니다(예: 8비트 정수 추가 127 + 1의 결과 -128, 두 개의 보완물 128). 이 특정 문제에 대한 해결책은 프로그램이 예상하고 가정하는 값에 대해 부호 없는 정수 형식을 사용하는 것입니다. 위의 경우 bytesRec이 오버플로되어 MAXGET보다 낮은 숫자를 지속적으로 생성하고 첫 번째 MAXGET-1 바이트의 buf를 덮어쓸 수 있습니다. 오버플로 조건은 의도하지 않은 동작으로 이어지는 결과를 제공할 수 있습니다.

특히 가능성을 예상하지 못한 경우 오버플로는 프로그램의 안정성과 보안을 손상시킬 수 있습니다. 쿼터Sold 변수에 기본 형식이 길지만 메서드 calculateRevenueForQuarter에 짧은 형식의 매개 변수가 있는 경우 정수 오버플로가 발생할 수도 있습니다. 포화 산술을 지원하는 그래픽 처리 장치(GPU) 및 디지털 신호 프로세서(DSP)와 같은 일부 프로세서에서는 오버플로된 결과가 “클램프”(즉, 래핑되지 않고 표현 가능한 범위의 최소 값 또는 최대값으로 설정)됩니다. 주위. 컴퓨터 그래픽 또는 신호 처리에서는 0에서 1 또는 -1에서 1까지의 데이터에서 작업하는 것이 일반적입니다. 예를 들어 0이 검정을 나타내고 1은 흰색을 나타내고 그 사이의 값은 다양한 회색 음영을 나타내는 그레이스케일 이미지입니다. 지원하려는 작업 중 하나는 모든 픽셀에 상수를 곱하여 이미지를 밝게 하는 것입니다. 포화 산술 은 1보다 큰 모든 픽셀 (즉, “흰색보다 밝다”)이 흰색이되고 모든 값이 “어둡게”되는 합리적인 결과를 고수하여 오버 플로우에 대해 걱정하지 않고 모든 픽셀을 맹목적으로 곱할 수 있습니다.

검은 색보다”그냥 검은 색이된다. 버퍼 오버플로 [20]는 버퍼에 데이터를 쓰는 동안 버퍼의 경계를 오버런하여 발생합니다. 이를 통해 공격자는 프로그램 실행 경로를 제어하는 데이터를 덮어쓰고 프로그램을 하이재킹하여 프로세스 코드 대신 공격자의 코드를 실행할 수 있습니다. 최근 스택 기반 버퍼 오버플로 예제는 FreeRADIUS의 cbtls_verify 함수와 관련되어 서버 충돌을 일으키고 클라이언트 인증서의 긴 “이후” 타임스탬프를 통해 임의의 코드를 실행할 수 있습니다[21].