ExpertiDict

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

use after free

/ˌjuz ˈæf.tɚ fɹi/substantivo

Erro de acessar um bloco do heap depois de ele ter sido liberado com free. A memória pode ter sido reaproveitada, o que corrompe dados ou abre brecha de segurança.

Onde usar

É comum quando duas estruturas guardam o mesmo ponteiro e uma delas libera o bloco. O AddressSanitizer detecta esse erro e informa onde foi o free.

Em código

char *s = malloc(4);
strcpy(s, "abc");
free(s);
puts(s); // use after free

Exemplos

ASan reported a use after free in the cleanup path.

O ASan reportou um use after free no caminho de limpeza.

Two owners of the same pointer is how you get a use after free.

Dois donos do mesmo ponteiro é como se chega a um use after free.

Cuidado

Ler o valor logo depois do free e achar que está tudo certo porque "funcionou"; essa aparência de acerto é o perigo.

Sinônimos

UAF

Veja também

Todos os termos de C