Неопределенное поведение, когда обработчик сигнала обычно возвращается из ошибки в программе
Этот дефект происходит, когда обработчик сигнала возвращает после ловли вычислительного сигнала исключения SIGFPE
, SIGILL
, или SIGSEGV
.
Обработчик сигнала, который обычно возвращается из вычислительного исключения, является неопределенным поведением. Даже если обработчик пытается зафиксировать ошибку, которая инициировала сигнал, программа может неожиданно вести себя.
Проверяйте валидность значений ваших переменных перед расчетом, чтобы избегать использования обработчика сигнала, чтобы отловить исключения. Если вы не можете избежать обработчика, чтобы отловить сигналы исключения расчета, вызовите abort()
, quick_exit()
, или _Exit()
в обработчике, чтобы остановить программу.
Группа: Программирование |
Язык: C | C++ |
Значение по умолчанию: На для рукописного кода, прочь для сгенерированного кода |
Синтаксис командной строки:
SIG_HANDLER_COMP_EXCP_RETURN
|
Удар: низко |
ID CWE: 387 |
Find defects (-checkers)
| Function called from signal handler not asynchronous-safe
| Function called from signal handler not asynchronous-safe (strict)
| Signal call from within signal handler