From 0fd281fb2555d8fbb65d2259a1e9bf80ec5feca4 Mon Sep 17 00:00:00 2001 From: gesior Date: Wed, 4 Jun 2025 17:52:15 +0200 Subject: [PATCH] fix: crash in ProtocolLogin (#4902) --- src/protocollogin.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/protocollogin.cpp b/src/protocollogin.cpp index 7d741c3ed2..66e149afe2 100644 --- a/src/protocollogin.cpp +++ b/src/protocollogin.cpp @@ -62,6 +62,11 @@ void ProtocolLogin::disconnectClient(const std::string& message, uint16_t versio void ProtocolLogin::getCharacterList(const std::string& accountName, const std::string& password, const std::string& token, uint16_t version) { + auto connection = getConnection(); + if (!connection) { + return; + } + Database& db = Database::getInstance(); DBResult_ptr result = db.storeQuery(fmt::format( @@ -118,7 +123,7 @@ void ProtocolLogin::getCharacterList(const std::string& accountName, const std:: if (!db.executeQuery( fmt::format("INSERT INTO `sessions` (`token`, `account_id`, `ip`) VALUES ({:s}, {:d}, INET6_ATON({:s}))", db.escapeBlob(sessionKey.data(), sessionKey.size()), id, - db.escapeString(getConnection()->getIP().to_string())))) { + db.escapeString(connection->getIP().to_string())))) { disconnectClient("Failed to create session.\nPlease try again later.", version); return; }