Weaknesses of type CWE-193
109 resultsErro de índice por um (off-by-one)
Ocorre quando o código usa um índice incorreto em operações com arrays, buffers ou loops — tipicamente iterando uma posição a mais ou a menos do que deveria. Isso causa acesso a memória inválida, leitura de dados além dos limites da estrutura ou corrupção de dados adjacentes.
Um loop que processa um array de 10 elementos mas itera de 0 a 10 (em vez de 0 a 9) e tenta acessar array[10], lendo ou sobrescrevendo memória fora do escopo da variável. Ou uma validação de tamanho que permite um byte além do buffer esperado.
Use índices a partir de 0 e compare com tamanho (i < tamanho, nunca <=). Prefira iteradores de linguagens modernas (for-each, ranges) em vez de índices manuais. Aplique testes automáticos com fuzzing e análise estática para detectar essas falhas antes da produção.