C · Intermediário · Inglês · Técnico
buffer overflow
Escrita além do fim de um bloco de memória reservado, como um array. Corrompe dados vizinhos ou o endereço de retorno e é uma das maiores fontes de falhas de segurança em C.
Onde usar
Funções como strcpy, gets e sprintf não verificam o tamanho do destino e são o caminho clássico para o problema. Em review, qualquer cópia sem limite explícito deve levantar suspeita.
Em código
char buf[8];
strcpy(buf, "texto longo demais"); // overflow
// use snprintf(buf, sizeof buf, "%s", s)Exemplos
This strcpy is a buffer overflow waiting to happen.
Esse strcpy é um buffer overflow esperando para acontecer.
The crash was a buffer overflow in the parser.
O crash foi um buffer overflow no parser.
Cuidado
Esquecer que a leitura além do limite (buffer over-read) também é grave, pois vaza dados sem escrever nada.
Sinônimos
estouro de buffer