Weaknesses of type CWE-192
6 resultsErro de Coerção de Inteiros
Ocorre quando um inteiro é convertido implicitamente entre tipos de dados (por exemplo, de um tipo maior para um menor) sem validação adequada, causando perda de dados ou comportamento inesperado. A coerção silenciosa pode levar a valores truncados, sinais invertidos ou transbordamentos que o código não esperava tratar.
Um programa recebe um tamanho de buffer como long (64 bits) e o atribui diretamente a um int (32 bits) sem checar. Se o valor for maior que 2³¹-1, o int fica negativo ou muito menor, fazendo a alocação de memória ficar insuficiente e causando estouro de buffer posteriormente.
Valide explicitamente antes de converter: verifique se o valor está dentro da faixa permitida do tipo destino. Use flags do compilador (`-Wconversion` em GCC/Clang) para alertar coerções suspeitas e prefira tipos com range bem definido (use size_t para tamanhos, não int).