aboutsummaryrefslogtreecommitdiff
path: root/src/server/bnetserver/Server/Session.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-10-22 19:06:26 +0200
committerShauren <shauren.trinity@gmail.com>2018-10-22 19:06:26 +0200
commit41a7e08e43e1a0a277ae922f587dc05986899170 (patch)
treeac750bd12c450b3b8e9ce9e4c098e3d4d1d5c495 /src/server/bnetserver/Server/Session.cpp
parent31a2a394c72121989bb82d06308ec75ae5c4e267 (diff)
Core/Bnet: Safeguard auth process against bad external db modifications
Diffstat (limited to 'src/server/bnetserver/Server/Session.cpp')
-rw-r--r--src/server/bnetserver/Server/Session.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/bnetserver/Server/Session.cpp b/src/server/bnetserver/Server/Session.cpp
index 55a6827854a..fd74128b458 100644
--- a/src/server/bnetserver/Server/Session.cpp
+++ b/src/server/bnetserver/Server/Session.cpp
@@ -245,11 +245,17 @@ uint32 Battlenet::Session::HandleLogon(authentication::v1::LogonRequest const* l
uint32 Battlenet::Session::HandleVerifyWebCredentials(authentication::v1::VerifyWebCredentialsRequest const* verifyWebCredentialsRequest, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation)
{
- return VerifyWebCredentials(verifyWebCredentialsRequest->web_credentials(), continuation);
+ if (verifyWebCredentialsRequest->has_web_credentials())
+ return VerifyWebCredentials(verifyWebCredentialsRequest->web_credentials(), continuation);
+
+ return ERROR_DENIED;
}
uint32 Battlenet::Session::VerifyWebCredentials(std::string const& webCredentials, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation)
{
+ if (webCredentials.empty())
+ return ERROR_DENIED;
+
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_BNET_ACCOUNT_INFO);
stmt->setString(0, webCredentials);