diff options
author | leak <leakzx@googlemail.com> | 2012-07-13 09:11:05 +0200 |
---|---|---|
committer | leak <leakzx@googlemail.com> | 2012-07-13 09:11:05 +0200 |
commit | 176a2c1080c609138b7291828c905cdb979e1f3e (patch) | |
tree | 89e0e0e38c1bc02d1728db164a0b2072ada29267 /src | |
parent | da9865b6833f94b7fd21f1d39a66f078a9211c4f (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Warden/WardenCheckMgr.cpp | 8 | ||||
-rwxr-xr-x | src/server/shared/Cryptography/ARC4.cpp | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/server/game/Warden/WardenCheckMgr.cpp b/src/server/game/Warden/WardenCheckMgr.cpp index abd7ff8f87d..0677758439f 100644 --- a/src/server/game/Warden/WardenCheckMgr.cpp +++ b/src/server/game/Warden/WardenCheckMgr.cpp @@ -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"); diff --git a/src/server/shared/Cryptography/ARC4.cpp b/src/server/shared/Cryptography/ARC4.cpp index 52a60573eca..5b2cf7a0a93 100755 --- a/src/server/shared/Cryptography/ARC4.cpp +++ b/src/server/shared/Cryptography/ARC4.cpp @@ -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); |