Операнды операции остатка (%) происходит из небезопасного источника
Этот дефект возникает, когда один или оба целочисленных операнда в операции остатка (%) происходит из небезопасных источников. Чтобы считать все входные данные вне текущего периметра анализа небезопасными, используйте -consider-analysis-perimeter-as-trust-boundary.
Если второй операнд остатка равен нулю, операция остатка завершается неуспешно, что приводит к аварийному завершению программы.
Если второй операнд остатка -1, операция остатка может переполняться, если операция остатка реализуется на основе операции разделения, которая может переполняться.
Если один из операндов отрицательный, результат операции является неопределенным. Для C89 операция по модулю не стандартизирована, поэтому результат отрицательных операндов определяется реализацией.
Эти риски могут быть использованы злоумышленниками для получения доступа к вашей программе или цели в целом.
Перед выполнением операции по модулю проверьте значения операндов. Проверьте второй операнд на значения 0 и -1. Проверьте оба операнда на наличие отрицательных значений.
| Группа: Запятнанные данные |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки: TAINTED_INT_MOD |
| Воздействие: Низкий |
| CWE ID: 369, 682 |
-consider-analysis-perimeter-as-trust-boundary | Find defects (-checkers) | Integer division by zero | Tainted division operand