Fallos del tipo CWE-170

66 resultados

Terminação inadequada com nulo

Ocorre quando uma string ou buffer não é finalizado com o caractere nulo ('\0'), violando a convenção de strings em C/C++. Funções de manipulação de strings esperam encontrar esse terminador para saber onde a string acaba; sem ele, leem além dos limites da memória alocada, causando vazamento de dados ou corrupção.

Ejemplo

Um desenvolvedor copia dados para um buffer com strncpy() mas esquece de adicionar o nulo no final: char buf[10]; strncpy(buf, entrada, 10); — agora buf não é uma string válida, e strcmp() ou printf() vão ler memória aleatória até achar um nulo por acaso.

Cómo mitigar

Use sempre funções seguras (strlcpy, snprintf) que garantem o terminador nulo, ou adicione manualmente buf[tamanho_cópia] = '\0' após copiar dados. Em validação, sempre sanitize entrada garantindo que buffers destinados a strings sejam nulos-terminados antes de usá-los.