Weaknesses of type CWE-562

8 results

Retorno do endereço de variável de pilha

A função retorna o endereço (ponteiro) de uma variável alocada na pilha (stack), que deixa de existir quando a função termina. Quem chamar a função fica com um ponteiro pendente (dangling pointer) apontando para memória inválida, levando a leitura de lixo, corrupção ou crash.

Example

Uma função em C retorna &variavel_local onde variavel_local é uma variável automática. Após a função retornar, esse endereço aponta para espaço de pilha que pode ser sobrescrito por outras chamadas, e acessar esse ponteiro lê dados impredíveis ou corrompe a execução.

How to mitigate

Alocar a variável em heap (malloc/new) e retornar o ponteiro, ou retornar o valor diretamente em vez do endereço. Linters e sanitizers (como AddressSanitizer) detectam essa prática; configure análise estática no build.