Fallos del tipo CWE-587

1 resultado

Atribuição a variável com escopo insuficiente

A fraqueza ocorre quando uma variável é atribuída em um escopo muito restrito (como dentro de um bloco condicional ou função), mas o código tenta usá-la fora desse escopo onde ela não existe ou possui valor indefinido. Isso causa comportamento imprevisível, pois a variável não retém o valor esperado além de seu escopo original.

Ejemplo

Em C/C++, uma variável é declarada e inicializada dentro de um if(), mas depois é acessada fora do bloco if. O compilador pode não reclamar, mas em runtime a variável contém lixo de memória ou causa crash. No caso do FpdtStatusCodeListenerPei, uma variável crítica foi atribuída apenas em uma condição específica, mas usada globalmente sem garantia de inicialização.

Cómo mitigar

Declare e inicialize variáveis no escopo mais amplo necessário, nunca dentro de blocos condicionais. Use análise estática (lint, SonarQube) para detectar variáveis não inicializadas antes do uso e valide sempre que uma variável foi atribuída antes de consumi-la.