From e67c8fd64f667e5722ffadc5670bde75218c87c2 Mon Sep 17 00:00:00 2001 From: Luke1410 Date: Fri, 19 Jul 2019 23:48:40 +0200 Subject: [PATCH] - fix CCryptoManager::DecryptSessionData() overwriting first data block, if to be decrypted data is larger than a single block (#255) --- Source/src/crypto/cryptomanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/src/crypto/cryptomanager.cpp b/Source/src/crypto/cryptomanager.cpp index 6cb000521..2864f7459 100644 --- a/Source/src/crypto/cryptomanager.cpp +++ b/Source/src/crypto/cryptomanager.cpp @@ -123,7 +123,7 @@ namespace SLNet } RakAssert(static_cast(bytesWritten1) <= inOutBufferSize); int bytesWritten2; - if (EVP_DecryptFinal_ex(&m_decryptionContext, outBuffer, &bytesWritten2) == 0) { + if (EVP_DecryptFinal_ex(&m_decryptionContext, outBuffer + bytesWritten1, &bytesWritten2) == 0) { return false; // failed final decryption step } RakAssert(static_cast(bytesWritten1) + static_cast(bytesWritten2) <= inOutBufferSize);