# V585. Attempt to release memory that stores the 'Foo' local variable.

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

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

    void Foo()
    {
      int *p;
      ...
      free(&p);
    }

Корректный код:

    void Foo()
    {
      int *p;
      ...
      free(p);
    }

Выявляемые диагностикой ошибки классифицируются согласно ГОСТ Р 71207–2024 как критические и относятся к типу: Ошибки управления динамической памятью (выделения, освобождения, использования освобожденной памяти) [* см. примечание касательно языков C#, Java].

Данная диагностика классифицируется как:

CWE-762 CERT-MEM34-C