diff options
-rw-r--r-- | src/server/authserver/Server/AuthSession.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
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<char*>(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<char*>(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; |