From 34ab0f3938cc3f8b987d613715be0470cfad309f Mon Sep 17 00:00:00 2001 From: phosit Date: Sat, 2 May 2026 10:06:01 +0200 Subject: [PATCH] Disconnect before deleting the session The session was deleted from `m_Sessions` before disconnecting. Since e7a583adc0 that also deleted the session. --- source/network/NetServer.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/network/NetServer.cpp b/source/network/NetServer.cpp index 744efd4a9c..378bd08304 100644 --- a/source/network/NetServer.cpp +++ b/source/network/NetServer.cpp @@ -496,14 +496,13 @@ bool CNetServerWorker::RunStep() // Remove the session first, so we won't send player-update messages to it // when updating the FSM - std::erase_if(m_Sessions, [&](const auto& s) - { - return s.get() == session; - }); + const auto iter = std::ranges::find(m_Sessions, session, + &std::unique_ptr::get); + const std::unique_ptr _ = std::move(*iter); + m_Sessions.erase(iter); session->Update((uint)NMT_CONNECTION_LOST, NULL); - delete session; event.peer->data = NULL; }