Размер массива переменной длины является нулем или отрицательный
Этот дефект происходит, когда размер массива переменной длины является нулем или отрицательный.
Если размер массива переменной длины является нулем, или отрицательное, неожиданное поведение может произойти, такие как переполнение стека.
Когда вы объявляете массив переменной длины как локальную переменную в функции:
Если вы используете параметр функции в качестве размера массивов, проверяйте, что параметр положителен.
Если вы используете результат расчета на параметре функции как размер массивов, проверяйте, что результат положителен.
Можно поместить тест для положительного значения или перед вызовом функции или перед объявлением массива в теле функции.
Группа: Программирование |
Язык: C | C++ |
Значение по умолчанию: На для рукописного кода, прочь для сгенерированного кода |
Синтаксис командной строки: NON_POSITIVE_VLA_SIZE |
Удар: высоко |
ID CWE: 687 |