Размер буфера памяти - это числовое значение вместо символьной константы
Этот дефект возникает, когда при объявлении буфера памяти, такого как массив, вместо символьной константы используется числовое значение.
Жестко закодированный размер буфера вызывает следующие проблемы:
Жестко закодированный размер буфера увеличивает вероятность ошибок и, следовательно, затраты на обслуживание. Если изменение политики требует от разработчиков изменения размера буфера, они должны изменять каждое вхождение размера буфера в код.
Жесткие константы могут подвергаться атаке, если раскрыт код.
Используйте символическое имя вместо жестко закодированной константы для размера буфера. Символьные имена включают const-квалифицированные переменные, enum константы или макросы.
enum рекомендуется использовать константы.
Макросы заменяются их постоянными значениями после предварительной обработки. Поэтому они могут открыть границу контура.
enum константы известны во время компиляции. Поэтому компиляторы могут оптимизировать циклы более эффективно.
const-квалифицированные переменные обычно известны во время выполнения.
| Группа: Надлежащая практика |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки: HARD_CODED_BUFFER_SIZE |
| Воздействие: Низкий |
| ИДЕНТИФИКАТОР CWE: 547 |