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