Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Отвергнутые патчи

Важная информация

Отвергнутые патчи Патчи, отвергнутые от приёма в GIT

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.06.2010, 10:39   #1
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию [patch/dev] crash in HandleSetActiveMoverOpcode

Вот недавно словил такой краш http://paste2.org/p/860715 . Я помню ещё как-то давно он был одним из самых частых крашей, видимо попытки hununza вправить его уменьшили его частоту, однако я его таки словил на ревизии 10011

В общем мои первые потуги его исправить окончательно. Т.к. мы незнаем откуда корень краша, пока предлагаю затык.
Написал два варианта.
1
Код:
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp
index d81bb8a..765cd2f 100644
--- a/src/game/MovementHandler.cpp
+++ b/src/game/MovementHandler.cpp
@@ -778,6 +778,12 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPacket &recv_data)
     uint64 guid;
     recv_data >> guid;
 
+    if(!_player || !guid)
+    {
+        sLog.outError("Prevented crash with HandleSetActiveMoverOpcode");
+        return;
+    }
+
     if(_player->m_mover->GetGUID() != guid)
     {
         sLog.outError("HandleSetActiveMoverOpcode: incorrect mover guid: mover is " I64FMT " and should be " I64FMT, _player->m_mover->GetGUID(), guid);
2
Код:
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp
index d81bb8a..765cd2f 100644
--- a/src/game/MovementHandler.cpp
+++ b/src/game/MovementHandler.cpp
@@ -778,6 +778,12 @@ void WorldSession::HandleSetActiveMoverOpcode(WorldPacket &recv_data)
     uint64 guid;
     recv_data >> guid;
 
+    if(!_player->m_mover->GetGUID() || !guid)
+    {
+        sLog.outError("Prevented crash with HandleSetActiveMoverOpcode");
+        return;
+    }
+
     if(_player->m_mover->GetGUID() != guid)
     {
         sLog.outError("HandleSetActiveMoverOpcode: incorrect mover guid: mover is " I64FMT " and should be " I64FMT, _player->m_mover->GetGUID(), guid);
Жду конструктивной критики

Последний раз редактировалось Insider42; 02.06.2010 в 10:44.
Insider42 вне форума   Ответить с цитированием
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Crash dump'ы под *nix CruncH Прочая документация 16 21.08.2010 11:09
Crash с инстами ice74 Баг-репорты 12 20.05.2010 12:11
[Crash?] удаление GO zergtmn Баг-репорты 0 29.04.2010 22:31
[crash] EffectScriptEffect Insider42 Баг-репорты 8 23.04.2010 12:49
Crash(game_event) selector Баг-репорты 9 19.04.2010 19:41


Текущее время: 11:13. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot