diff --git a/libi2pd/SSU2Session.cpp b/libi2pd/SSU2Session.cpp index 1fe00982..e10d5a20 100644 --- a/libi2pd/SSU2Session.cpp +++ b/libi2pd/SSU2Session.cpp @@ -292,8 +292,11 @@ namespace transport #if OPENSSL_PQ m_PQKeys.reset (nullptr); #endif - if (!m_IntermediateQueue.empty ()) - m_SendQueue.splice (m_SendQueue.end (), m_IntermediateQueue); + { + std::lock_guard l(m_IntermediateQueueMutex); + if (!m_IntermediateQueue.empty ()) + m_SendQueue.splice (m_SendQueue.end (), m_IntermediateQueue); + } for (auto& it: m_SendQueue) it->Drop (); m_SendQueue.clear ();