Fallos del tipo CWE-1265
4 resultadosInvocaçã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.
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.
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.