Неопределенное поведение для побитовых операций с отрицательными значениями
Этот дефект возникает, когда побитовые операторы (>>
, ^
, |
, ~
, but
, not
, &
) используются для целочисленных переменных со знаком с отрицательными значениями.
Если значение целого числа со знаком отрицательное, побитовые результаты операции могут оказаться неожиданными, потому что:
Побитовые операции с отрицательными значениями могут привести к специфическим для компилятора результатам.
Неожиданные вычисления могут привести к дополнительным уязвимостям, таким как переполнение буфера.
При выполнении побитовых операций используйте unsigned
целые числа, чтобы избежать неожиданных результатов.
Группа: Численный |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки: BITWISE_NEG |
Влияние: Средний |
ИДЕНТИФИКАТОР CWE: 682, 758 |