Размер буфера памяти является численным значением вместо символьной константы
Этот дефект происходит, когда вы используете численное значение вместо символьной константы при объявлении буфера памяти, такого как массив.
Трудно закодированный buffer size вызывает следующие проблемы:
Трудно закодированный buffer size увеличивает вероятность ошибок и поэтому затрат на обслуживание. Если изменение политики требует, чтобы разработчики изменили buffer size, они должны изменить каждое вхождение buffer size в коде.
Тяжело-постоянные константы могут быть отсоединены нападению, если код раскрыт.
Используйте символьное имя вместо трудно закодированной константы для buffer size. Символьные имена включают const
- квалифицированные переменные, enum
константы или макросы.
enum
константы рекомендуются.
Макросы заменяются их постоянными значениями после предварительной обработки. Поэтому они могут отсоединить контур цикла.
enum
константы известны во время компиляции. Поэтому компиляторы могут оптимизировать циклы более эффективно.
const
- квалифицированные переменные обычно известны во время выполнения.
Группа: Хорошая практика |
Язык: C | C++ |
Значение по умолчанию: Off |
Синтаксис командной строки: HARD_CODED_BUFFER_SIZE |
Удар: низко |
ID CWE: 547 |