diff options
author | Shauren <shauren.trinity@gmail.com> | 2014-08-10 11:48:43 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2014-08-10 11:48:43 +0200 |
commit | 39d3480172f8a26af1f2ce3961b3ff3ee89f1a97 (patch) | |
tree | d8f2a8630e20f00927b366d3bcac075fb6a7bbbb | |
parent | df11916ad53e6b2f64cd1af5d5296ba188f3e486 (diff) |
Core/Authserver: Fixed writing to invalid memory address
-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; |