From b69a1a71c6b3c604f5eed1d0752f66981a4efc25 Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 22 Dec 2025 13:06:28 +0100 Subject: Core/Network: Fix invalid NetworkThread array access for derived classes that have additional data members (only HttpService threads were affected) --- src/server/bnetserver/Server/SessionManager.cpp | 5 ++--- src/server/bnetserver/Server/SessionManager.h | 10 +++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) (limited to 'src/server/bnetserver/Server') diff --git a/src/server/bnetserver/Server/SessionManager.cpp b/src/server/bnetserver/Server/SessionManager.cpp index 4c5b532ee60..b1dac140084 100644 --- a/src/server/bnetserver/Server/SessionManager.cpp +++ b/src/server/bnetserver/Server/SessionManager.cpp @@ -16,7 +16,6 @@ */ #include "SessionManager.h" -#include "Util.h" bool Battlenet::SessionManager::StartNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, int threadCount) { @@ -30,9 +29,9 @@ bool Battlenet::SessionManager::StartNetwork(Trinity::Asio::IoContext& ioContext return true; } -Trinity::Net::NetworkThread* Battlenet::SessionManager::CreateThreads() const +Battlenet::SessionNetworkThread* Battlenet::SessionManager::CreateThreads() const { - return new Trinity::Net::NetworkThread[GetNetworkThreadCount()]; + return new SessionNetworkThread[GetNetworkThreadCount()]; } Battlenet::SessionManager& Battlenet::SessionManager::Instance() diff --git a/src/server/bnetserver/Server/SessionManager.h b/src/server/bnetserver/Server/SessionManager.h index 528ece8739e..aa2ecdbf9de 100644 --- a/src/server/bnetserver/Server/SessionManager.h +++ b/src/server/bnetserver/Server/SessionManager.h @@ -23,9 +23,13 @@ namespace Battlenet { - class SessionManager : public Trinity::Net::SocketMgr + class SessionNetworkThread final : public Trinity::Net::NetworkThread { - typedef SocketMgr BaseSocketMgr; + }; + + class SessionManager final : public Trinity::Net::SocketMgr + { + using BaseSocketMgr = SocketMgr; public: static SessionManager& Instance(); @@ -33,7 +37,7 @@ namespace Battlenet bool StartNetwork(Trinity::Asio::IoContext& ioContext, std::string const& bindIp, uint16 port, int threadCount = 1) override; protected: - Trinity::Net::NetworkThread* CreateThreads() const override; + SessionNetworkThread* CreateThreads() const override; }; } -- cgit v1.2.3