# V1025. New variable with default value is created instead of 'std::unique_lock' that locks on the mutex.

Анализатор обнаружил неправильное использование класса 'std::unique_lock', что может приводить к состоянию гонки.

Пример кода с ошибкой:

    class C {
      std::mutex m_mutex;
      void foo() {
        std::unique_lock <std::mutex>(m_mutex);
      }
    };

В данном примере создаётся новая переменная с именем 'm_mutex', инициализированная по умолчанию. Соответственно, мьютекс захвачен не будет.

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

    void foo() {
      std::unique_lock <std::mutex> var(m_mutex);
    }

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

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

CWE-820