From 53ee1eff0b525b5461caa726b3511b2afafe82e6 Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Fri, 12 Sep 2014 19:51:29 +0200 Subject: [PATCH 1/4] Core: Fix warning --- src/server/shared/Networking/Socket.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/shared/Networking/Socket.h b/src/server/shared/Networking/Socket.h index 17f48343485..6aa7974b1c1 100644 --- a/src/server/shared/Networking/Socket.h +++ b/src/server/shared/Networking/Socket.h @@ -111,11 +111,12 @@ public: void QueuePacket(MessageBuffer&& buffer, std::unique_lock& guard) { - _writeQueue.push(std::move(buffer)); #ifdef BOOST_ASIO_HAS_IOCP AsyncProcessQueue(guard); +#else + (void)guard; #endif } From 4d48d0eea70cb38508edeee7a3987893ca5f4981 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Fri, 12 Sep 2014 19:57:59 +0200 Subject: [PATCH 2/4] DB/Gameobject: Allow to target 2 gameobjects Closes #13093, closes #13094 --- sql/updates/world/2014_09_12_03_world_gameobject_template.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 sql/updates/world/2014_09_12_03_world_gameobject_template.sql diff --git a/sql/updates/world/2014_09_12_03_world_gameobject_template.sql b/sql/updates/world/2014_09_12_03_world_gameobject_template.sql new file mode 100644 index 00000000000..3771dd7c7dc --- /dev/null +++ b/sql/updates/world/2014_09_12_03_world_gameobject_template.sql @@ -0,0 +1,3 @@ +-- +UPDATE `gameobject_template` SET `flags`=4 WHERE `entry`=201937; -- Light's Vengeance +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry`=201759; -- The Forge of Souls Portcullis From 8f5ae1fb9075a9423cdbadbd8bc226ba6bb45a0e Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 12 Sep 2014 20:20:35 +0200 Subject: [PATCH 3/4] Core/Misc: Added const modifier to MessageBuffer::Write parameter --- src/server/shared/Networking/MessageBuffer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/shared/Networking/MessageBuffer.h b/src/server/shared/Networking/MessageBuffer.h index 2115bea3f47..2dcd4fbc161 100644 --- a/src/server/shared/Networking/MessageBuffer.h +++ b/src/server/shared/Networking/MessageBuffer.h @@ -81,7 +81,7 @@ public: } } - void Write(void* data, std::size_t size) + void Write(void const* data, std::size_t size) { if (size) { From b3f7210f4d475d0d5fb208c207a738877f878a0a Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 12 Sep 2014 20:25:13 +0200 Subject: [PATCH 4/4] Core/WorldSocket: Refactored client packet header check --- src/server/game/Server/WorldSocket.cpp | 4 ++-- src/server/game/Server/WorldSocket.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index f8673e5d5b7..ef92a59a73d 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -119,7 +119,7 @@ bool WorldSocket::ReadHeaderHandler() EndianConvertReverse(header->size); EndianConvert(header->cmd); - if (!header->IsValid()) + if (!header->IsValidSize() || !header->IsValidOpcode()) { if (_worldSession) { @@ -129,7 +129,7 @@ bool WorldSocket::ReadHeaderHandler() } else TC_LOG_ERROR("network", "WorldSocket::ReadHeaderHandler(): client %s sent malformed packet (size: %hu, cmd: %u)", - GetRemoteIpAddress().to_string().c_str(), header->size, header->cmd); + GetRemoteIpAddress().to_string().c_str(), header->size, header->cmd); CloseSocket(); return false; diff --git a/src/server/game/Server/WorldSocket.h b/src/server/game/Server/WorldSocket.h index d301e239340..3355c3d8cca 100644 --- a/src/server/game/Server/WorldSocket.h +++ b/src/server/game/Server/WorldSocket.h @@ -39,7 +39,8 @@ struct ClientPktHeader uint16 size; uint32 cmd; - bool IsValid() const { return size >= 4 && size < 10240 && cmd < NUM_MSG_TYPES; } + bool IsValidSize() const { return size >= 4 && size < 10240; } + bool IsValidOpcode() const { return cmd < NUM_MSG_TYPES; } }; #pragma pack(pop)