From 39d3480172f8a26af1f2ce3961b3ff3ee89f1a97 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 10 Aug 2014 11:48:43 +0200 Subject: Core/Authserver: Fixed writing to invalid memory address --- src/server/authserver/Server/AuthSession.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/server/authserver/Server/AuthSession.cpp') diff --git a/src/server/authserver/Server/AuthSession.cpp b/src/server/authserver/Server/AuthSession.cpp index e6a775e93ee..76f8b8c27b0 100644 --- a/src/server/authserver/Server/AuthSession.cpp +++ b/src/server/authserver/Server/AuthSession.cpp @@ -515,10 +515,9 @@ bool AuthSession::HandleLogonProof() ReadData(1); uint8 size = *(GetDataBuffer() + sizeof(sAuthLogonProof_C)); ReadData(size); - char* token = reinterpret_cast(GetDataBuffer() + sizeof(sAuthLogonProof_C) + sizeof(size)); - token[size] = '\0'; - unsigned int validToken = TOTP::GenerateToken(_tokenKey.c_str()); - unsigned int incomingToken = atoi(token); + std::string token(reinterpret_cast(GetDataBuffer() + sizeof(sAuthLogonProof_C) + sizeof(size)), size); + uint32 validToken = TOTP::GenerateToken(_tokenKey.c_str()); + uint32 incomingToken = atoi(token.c_str()); if (validToken != incomingToken) { ByteBuffer packet; -- cgit v1.2.3