Функция Exit handler прерывает нормальное выполнение программы
Этот дефект возникает, когда обработчик выхода сам вызывает другую функцию, которая прерывает ожидаемую последовательность завершения программы и вызывает ненормальный выход.
Обработчики выхода являются функциями, предназначенными для выполнения, когда программа заканчивается. Эти функции сначала регистрируются с определенными функциями, такими как atexit
, (WinAPI) _onexit
, или at_quick_exit()
.
Некоторые функции, которые могут вызвать ненормальные выходы exit
, abort
, longjmp
, или (WinAPI) _onexit
.
Если обработчик выхода завершает работу программы, можно иметь неопределенное поведение. Ненормальное завершение программы означает, что другие обработчики выхода не вызываются. Эти дополнительные обработчики выхода могут выполнить дополнительную очистку или другие необходимые шаги завершения.
В внутренних обработчиках выхода удалите вызовы функций, которые препятствуют нормальному завершению работы обработчика выхода.
Группа: Программирование |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки: EXIT_ABNORMAL_HANDLER |
Влияние: Средний |
ИДЕНТИФИКАТОР CWE: 705 |