Если функция возвращает информацию об ошибке, то эта информация об ошибке должна быть проверена
Если функция возвращает информацию об ошибке, эта информация об ошибке должна быть проверена.
Если вы не проверяете возврата значение функций, которые указывают информацию об ошибке через их возврат значения, ваша программа может вести себя неожиданно. Ошибки от этих функций могут распространяться по всей программе, вызывая неправильный выход, уязвимости безопасности и, возможно, отказы в работе системы.
Проверка вызывает нарушение, когда вы вызываете чувствительные стандартные функции, которые возвращают информацию о возможных ошибках, и вы делаете одно из следующего:
Игнорируйте возврат значение.
Вы просто не присваиваете возврату значение переменной или явным образом приводите возврат значение к void
.
Используйте выход из функции (возвращаемое значение или переданный по ссылке аргумент), не проверяя возврата значение на ошибки.
Проверка рассматривает функцию как чувствительную, если вызов функции подвержен отказу по таким причинам, как:
Исчерпанные системные ресурсы (для примера, при распределении ресурсов).
Изменены привилегии или разрешения.
Испорченные источники при чтении, записи или преобразовании данных из внешних источников.
Неподдерживаемые функции, несмотря на существующий API.
Проверка рассматривает только функции, где возвращаемое значение указывает, завершена ли функция без ошибок.
Некоторые из этих функций могут выполнять критические задачи, такие как:
Установите привилегии (для примера, setuid
)
Создайте тюрьму (для примера, chroot
)
Создайте процесс (для примера, fork
)
Создайте поток (для примера, pthread_create
)
Блокируйте или разблокируйте мьютекс (для примера, pthread_mutex_lock
)
Блокируйте или разблокируйте сегменты памяти (для примера, mlock
)
Для функций, которые не являются критическими, шашка позволяет приводить функцию возврата значение к void
.
Эта директива поддерживается только частично.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Кодовые проекты |
Категория: Требуемая |
Категория AGC: Требуется |