Fallos del tipo CWE-680
105 resultadosTransbordamento de inteiro causando transbordamento de buffer
Ocorre quando um cálculo de inteiro transborda (excede o limite do tipo), gerando um valor pequeno ou negativo que é depois usado como tamanho de alocação ou índice de buffer. O código acredita ter espaço suficiente, mas na verdade alocou pouco ou até nada, permitindo escrita fora dos limites da memória.
Uma função recebe dois inteiros de 32 bits (tamanho + overhead) que, quando somados, causam overflow e resultam em um valor pequeno. A alocação malloc(tamanho + overhead) aloca poucos bytes, mas o código copia dados grandes para esse buffer, sobrescrevendo memória adjacente.
Valide os operandos antes de operações aritméticas que alimentam alocações de memória; use tipos inteiros maiores (64-bit) quando apropriado; aplique testes de saturação (verificar se a soma/multiplicação ultrapassaria o máximo permitido) antes de usar o resultado em malloc, memcpy ou indexação de arrays.