Правый операнд целочисленного деления или операторов остатка не должен быть равным нулю
Правый операнд целочисленного деления или операторов остатка не должен быть равным нулю.
Если числитель является минимальным возможным значением, и знаменателем является -1
, ваша операция деления переполняется, потому что результат не может быть представлен текущим переменным размером.
Если знаменатель является нулем, ваши сбои операции деления возможно то, чтобы заставлять вашу программу отказать.
Эти риски могут использоваться, чтобы выполнить произвольный код. Этот код обычно выходит за рамки неявной политики безопасности программы.
Если второй операнд остатка является нулем, вашими сбоями операции остатка, заставляя вашу программу отказать.
Если вторым операндом остатка является -1
, ваша операция остатка может переполниться, если операция остатка реализована на основе операции деления, которая может переполниться.
Если один из операндов отрицателен, результат операции сомнителен. Для C89 не стандартизирована операция с модулем, таким образом, результат отрицательных операндов задан реализацией.
Эти риски могут быть использованы атакующими, чтобы получить доступ к вашей программе или цели в целом.
Средство проверки повышает дефект когда:
Знаменатель деления или операции с модулем может быть целым числом с нулевым знаком.
Существуют операции деления, где один или оба из целочисленных операндов из небезопасного источника.
Существуют операции с модулем с одним или несколькими испорченными операндами.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Выражения |
Категория: необходимый, автоматизированный |