ExpertiDict

C · Intermediário · Inglês · Técnico

buffer overflow

/ˈbʌ.fɚ ˈoʊ.vɚˌfloʊ/substantivo

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

Veja também

Todos os termos de C