Fallos del tipo CWE-562

8 resultados

Retorno do endereço de variável local

Função retorna um ponteiro para uma variável alocada na pilha (stack), que deixa de existir quando a função termina. Quem recebe o ponteiro acessa memória inválida ou já sobrescrita, causando comportamento imprevisível, corrupção de dados ou crash.

Ejemplo

Uma função C retorna `int *get_value() { int x = 42; return &x; }`. O código que chama e tenta usar esse ponteiro está acessando um endereço da pilha que agora pertence a outra função ou dados aleatórios.

Cómo mitigar

Alocar a variável no heap com malloc/new e deixar a responsabilidade de desalocação clara, ou retornar o valor por cópia (não referência). Em linguagens modernas, use verificadores estáticos (borrow checker do Rust, análise estática do Clang) que detectam isso automaticamente.