diff options
author | madmaxoft <github@xoft.cz> | 2014-01-02 18:08:38 +0100 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-01-02 18:08:38 +0100 |
commit | 15dddc77013f5366b77a73ca02f58680eaef9736 (patch) | |
tree | 528fe44f6bd189beabaf4553b30c63d273a13100 | |
parent | Fixed unaligned memory access in FastNBT. (diff) | |
download | cuberite-15dddc77013f5366b77a73ca02f58680eaef9736.tar cuberite-15dddc77013f5366b77a73ca02f58680eaef9736.tar.gz cuberite-15dddc77013f5366b77a73ca02f58680eaef9736.tar.bz2 cuberite-15dddc77013f5366b77a73ca02f58680eaef9736.tar.lz cuberite-15dddc77013f5366b77a73ca02f58680eaef9736.tar.xz cuberite-15dddc77013f5366b77a73ca02f58680eaef9736.tar.zst cuberite-15dddc77013f5366b77a73ca02f58680eaef9736.zip |
Diffstat (limited to '')
-rw-r--r-- | src/Protocol/Protocol132.cpp | 6 | ||||
-rw-r--r-- | src/WorldStorage/FastNBT.h | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/Protocol/Protocol132.cpp b/src/Protocol/Protocol132.cpp index 346607b79..46ac4ef89 100644 --- a/src/Protocol/Protocol132.cpp +++ b/src/Protocol/Protocol132.cpp @@ -886,15 +886,15 @@ void cProtocol132::HandleEncryptionKeyResponse(const AString & a_EncKey, const A time_t CurTime = time(NULL); CryptoPP::RandomPool rng; rng.Put((const byte *)&CurTime, sizeof(CurTime)); - byte DecryptedNonce[MAX_ENC_LEN]; - DecodingResult res = rsaDecryptor.Decrypt(rng, (const byte *)a_EncNonce.data(), a_EncNonce.size(), DecryptedNonce); + Int32 DecryptedNonce[MAX_ENC_LEN / sizeof(Int32)]; + DecodingResult res = rsaDecryptor.Decrypt(rng, (const byte *)a_EncNonce.data(), a_EncNonce.size(), (byte *)DecryptedNonce); if (!res.isValidCoding || (res.messageLength != 4)) { LOGD("Bad nonce length"); m_Client->Kick("Hacked client"); return; } - if (ntohl(*((int *)DecryptedNonce)) != (unsigned)(uintptr_t)this) + if (ntohl(DecryptedNonce[0]) != (unsigned)(uintptr_t)this) { LOGD("Bad nonce value"); m_Client->Kick("Hacked client"); diff --git a/src/WorldStorage/FastNBT.h b/src/WorldStorage/FastNBT.h index 7323c29cb..b84eda1a1 100644 --- a/src/WorldStorage/FastNBT.h +++ b/src/WorldStorage/FastNBT.h @@ -154,13 +154,13 @@ public: inline Int16 GetShort(int a_Tag) const { ASSERT(m_Tags[a_Tag].m_Type == TAG_Short); - return ntohs(*((Int16 *)(m_Data + m_Tags[a_Tag].m_DataStart))); + return GetBEShort(m_Data + m_Tags[a_Tag].m_DataStart); } inline Int32 GetInt(int a_Tag) const { ASSERT(m_Tags[a_Tag].m_Type == TAG_Int); - return ntohl(*((Int32 *)(m_Data + m_Tags[a_Tag].m_DataStart))); + return GetBEInt(m_Data + m_Tags[a_Tag].m_DataStart); } inline Int64 GetLong(int a_Tag) const @@ -172,7 +172,7 @@ public: inline float GetFloat(int a_Tag) const { ASSERT(m_Tags[a_Tag].m_Type == TAG_Float); - Int32 tmp = ntohl(*((Int32 *)(m_Data + m_Tags[a_Tag].m_DataStart))); + Int32 tmp = GetBEInt(m_Data + m_Tags[a_Tag].m_DataStart); return *((float *)&tmp); } |