Доступ или изменение общих данных приводит к несогласованному состоянию
Этот дефект возникает при доступе к общему объекту внутри обработчика сигнала или при его изменении.
При определении функции обработчика сигнала для доступа или изменения общего объекта обработчик получает доступ к общему объекту или изменяет его при получении сигнала. Если другая функция уже обращается к общему объекту, эта функция вызывает условие гонки и может оставить данные в несогласованном состоянии.
Чтобы получить доступ к общим объектам или изменить их в обработчике сигналов, убедитесь, что объекты не содержат блокировок, или, если они являются целыми числами, объявите их как volatile sig_atomic_t.
| Группа: Программирование |
| Язык: C | C++ |
| По умолчанию: Вкл для рукописного кода, выкл для сгенерированного кода |
Синтаксис командной строки:
SIG_HANDLER_SHARED_OBJECT
|
| Воздействие: среднее |
| CWE ID: 364, 413 |
Find defects (-checkers) | Function called from signal handler not asynchronous-safe | Signal call from within signal handler