V505. The 'alloca' function is used inside the loop. This can quickly overflow stack.


Анализатор обнаружил использование функции alloca внутри цикла. Поскольку функция alloca использует стековую память, то ее многократный вызов в теле цикла может неожиданно привести к переполнению стека.

Пример опасного кода:

for (size_t i = 0; i < n; ++i)
  if (wcscmp(strings[i], A2W(pszSrc[i])) == 0)
  { 
    ...
  }

Внутри макроса A2W используется функция _alloca. Приведет ли данный код к ошибке или нет, будет зависеть от длины обрабатываемых строк, их количества и размера доступного стека.

Согласно Common Weakness Enumeration, потенциальные ошибки, найденные с помощью этой диагностики, классифицируются как CWE-770.

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V505.


Найденные ошибки

Проверено проектов
361
Собрано ошибок
13 417

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;