diff options
| author | Intel <chemicstry@gmail.com> | 2014-12-28 21:57:14 +0200 |
|---|---|---|
| committer | Intel <chemicstry@gmail.com> | 2014-12-28 21:57:14 +0200 |
| commit | 43fdf4cadaa72bff261bbc7bfc79f1284e254e7c (patch) | |
| tree | 001b7b782af823f93f1fd75cf2e64a944639f4ef /src/server/game/Handlers | |
| parent | 5c3762e1eeec4fb404a402d8f534084945ac4c43 (diff) | |
Core/Misc: Prevent crashing server with CMSG_TIME_SYNC_RESP and fixed some warnings
Diffstat (limited to 'src/server/game/Handlers')
| -rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 9598ce216fb..e97b7f1c247 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -1498,6 +1498,13 @@ void WorldSession::HandleTimeSyncResp(WorldPackets::Misc::TimeSyncResponse& pack { TC_LOG_DEBUG("network", "CMSG_TIME_SYNC_RESP"); + // Prevent crashing server if queue is empty + if (_player->m_timeSyncQueue.empty()) + { + TC_LOG_ERROR("network", "Received CMSG_TIME_SYNC_RESP from player %s without requesting it (hacker?)", _player->GetName().c_str()); + return; + } + if (packet.SequenceIndex != _player->m_timeSyncQueue.front()) TC_LOG_ERROR("network", "Wrong time sync counter from player %s (cheater?)", _player->GetName().c_str()); |
