Размер массива переменной длины равен нулю или отрицательному
Этот дефект возникает, когда размер массива переменной длины равен нулю или отрицательному.
Если размер массива переменной длины равен нулю или отрицательному, может произойти неожиданное поведение, такое как переполнение стека.
Когда вы объявляете массив переменной длины как локальную переменную в функции:
Если вы используете параметр функции в качестве размера массива, проверяйте, что параметр положительный.
Если вы используете результат расчета параметра функции в качестве размера массива, проверяйте, что результат положительный.
Можно поместить тест на положительное значение либо перед вызовом функции, либо объявлением массива в теле функции.
Группа: Программирование |
Язык: C | C++ |
По умолчанию: On для рукописного кода, off для сгенерированного кода |
Синтаксис командной строки: NON_POSITIVE_VLA_SIZE |
Влияние: Высокий |
ИДЕНТИФИКАТОР CWE: 687 |