From 9e6ca8cd6670170ddcebf4b7150398d00731315a Mon Sep 17 00:00:00 2001 From: lotodore Date: Sat, 26 Sep 2009 21:53:18 +0000 Subject: [PATCH] Fixing handle leak. Actually, this should be backported to the current server... --- src/net/common/serverlobbythread.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/net/common/serverlobbythread.cpp b/src/net/common/serverlobbythread.cpp index e7e71383..ac9320aa 100644 --- a/src/net/common/serverlobbythread.cpp +++ b/src/net/common/serverlobbythread.cpp @@ -1533,7 +1533,7 @@ void ServerLobbyThread::InternalCheckSessionTimeouts(SessionWrapper session) { bool closeSession = false; - if (session.sessionData.get() && session.playerData.get()) + if (session.sessionData.get()) { if (session.sessionData->GetState() == SessionData::Init && session.sessionData->GetAutoDisconnectTimerElapsedSec() >= SERVER_INIT_SESSION_TIMEOUT_SEC) { @@ -1565,7 +1565,10 @@ ServerLobbyThread::InternalCheckSessionTimeouts(SessionWrapper session) } if (closeSession) { - RemovePlayer(session.playerData->GetUniqueId(), ERR_NET_SESSION_TIMED_OUT); + if (session.playerData.get()) + RemovePlayer(session.playerData->GetUniqueId(), ERR_NET_SESSION_TIMED_OUT); + else + m_sessionManager.RemoveSession(session.sessionData->GetId()); } }