Core/Warden: Workaround for an OpenSSL bug in the ARC4 stream cipher initialization that causes crashes on some OS

-  Skip loading warden_action overrides when warden is disabled

fixes #6486
This commit is contained in:
leak
2012-07-13 09:11:05 +02:00
parent da9865b683
commit 176a2c1080
2 changed files with 10 additions and 2 deletions
@@ -151,6 +151,14 @@ void WardenCheckMgr::LoadWardenChecks()
void WardenCheckMgr::LoadWardenOverrides()
{
// Check if Warden is enabled by config before loading anything
if (!sWorld->getBoolConfig(CONFIG_WARDEN_ENABLED))
{
sLog->outString(">> Warden disabled, loading check overrides skipped.");
sLog->outString();
return;
}
// 0 1
QueryResult result = CharacterDatabase.Query("SELECT wardenId, action FROM warden_action");
+2 -2
View File
@@ -19,14 +19,14 @@
#include "ARC4.h"
#include <openssl/sha.h>
ARC4::ARC4(uint8 len)
ARC4::ARC4(uint8 len) : m_ctx()
{
EVP_CIPHER_CTX_init(&m_ctx);
EVP_EncryptInit_ex(&m_ctx, EVP_rc4(), NULL, NULL, NULL);
EVP_CIPHER_CTX_set_key_length(&m_ctx, len);
}
ARC4::ARC4(uint8 *seed, uint8 len)
ARC4::ARC4(uint8 *seed, uint8 len) : m_ctx()
{
EVP_CIPHER_CTX_init(&m_ctx);
EVP_EncryptInit_ex(&m_ctx, EVP_rc4(), NULL, NULL, NULL);