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