Fallos del tipo CWE-1265

4 resultados

Invocação reentrante não intencional de código não reentrante

Ocorre quando uma função não-reentrante (que não é segura para ser chamada simultaneamente ou de forma aninhada) é invocada novamente enquanto já está em execução, geralmente via callbacks, interrupções ou chamadas aninhadas. Isso corrompe estado compartilhado, causa deadlocks ou comportamento indefinido.

Ejemplo

Uma função que atualiza uma lista global sem proteção é chamada por um event listener. Se outro evento dispara durante a primeira execução e chama a mesma função novamente, a lista é modificada enquanto está sendo iterada, causando corrupção de dados ou crash.

Cómo mitigar

Use mecanismos de proteção como mutex/locks, variáveis sinalizadoras para detectar reentrância, ou redesenhe o código para ser naturalmente reentrante (sem estado compartilhado mutável). Evite callbacks que possam invocar código não-seguro de forma aninhada.