Commit Graph

19449 Commits

Author SHA1 Message Date
joschiwald
76171984f1 Scripts/Spells: fix codestyle in 48783b8606 2013-08-29 03:08:08 +02:00
Kirkhammett
48783b8606 Core/Quests: Fuel for the Fire (12690) 2013-08-29 00:50:14 +02:00
Vincent-Michael
a917461762 DB/Misc: Fix startup errors 2013-08-28 19:06:20 +02:00
joschiwald
4fc292cee8 DB/Conditions: fix startup error 2013-08-28 18:59:27 +02:00
Rohlik
5eeed14c2c DB/Quests: Fix "I'm Not Dead Yet!"
Closes #9807
2013-08-28 16:48:29 +01:00
Crysicle
75406b2c0d DB/Quests: Prepping the Speech description/progress/completion text
Closes #10607
2013-08-28 16:39:57 +01:00
Foldor
61fbe1c60c DB/Spawns: Kor'kron Reaver & Skybreaker Marine are currently missing from Dalaran's Krasus landing
Closes #10615
2013-08-28 16:38:30 +01:00
Nay
577e320809 DB/Schema: Fix typo in reputation_reward_rate.quest_repeatable_rate name 2013-08-28 16:31:43 +01:00
joschiwald
f5f0e6439c Scripts/UtgardeKeep/Ingvar: remove hacks and fix warning 2013-08-28 17:11:14 +02:00
Nay
83e5168a5b DB/Reputation: Reward 3x reputation for Sporegar on repeteable quests
Closes #5789
2013-08-28 15:15:14 +01:00
Aokromes
2bd4a479a6 Core/Quests: Add repeatable quest rate to world.reputation_reward_rate 2013-08-28 14:52:23 +01:00
Spp
3e2e210890 Core/Build: Force minimum ACE (5.8.3) and OpenSSL (1.0.0) version detection
Core/Build: Do not ignore command line cmake options: ACE_INCLUDE_DIR, ACE_LIBRARY and OPENSSL_INCLUDE_DIR
2013-08-28 15:44:06 +02:00
Nay
7135abf3a0 Merge branch 'master' of github.com:TrinityCore/TrinityCore 2013-08-27 23:56:34 +01:00
Nay
78786c7b54 Core&Scripts: Fix clang compiler warnings 2013-08-27 23:47:03 +01:00
joschiwald
1f34284828 Scripts/UtgardeKeep: reworked InstanceScript and cleanup some boss script 2013-08-27 23:50:40 +02:00
Nay
e5dc70118a Server/Collision: Fix build on clang 2013-08-27 19:34:03 +01:00
Nay
cc14e18664 Core/Misc: Fix compiler warnings 2013-08-27 16:06:18 +01:00
Filip
19accfc3ee DB: Missing declaration 2013-08-27 13:14:06 +02:00
Filip
a5ed6f6e20 DB/SAI: Sabotage 12676 (part 1)
Fixes #6460
2013-08-27 13:11:09 +02:00
Filip
56c168eef5 DB/SAI: Zero Tolerance & Hazardous Materials
Use the Hand of Drakuru to kill Darmuk, player should stand from a distance.
2013-08-27 05:14:18 +02:00
Filip
a638f3d90b DB/Loot: Bosses in Shattered Halls Heroic
Fixes #10638 by @dr-j
2013-08-27 04:56:56 +02:00
Filip
b8d697477e DB/Comments: Unclear comments 2013-08-26 20:05:43 +02:00
Filip
2d15acd63b DB/SAI: It Rolls Downhill 12673
Fixes #5718
You need to have mmaps enabled if you want the delivering of the geist to look blizzlike, otherwise it will ignore the path.
2013-08-26 19:46:26 +02:00
Shauren
69a616e55d Core/EventAI: Shut up compiler warnings 2013-08-26 19:21:14 +02:00
joschiwald
2aa944caee Scripts/Auchindoun: add missing InstanceScripts and cleanup some boss scripts 2013-08-26 18:52:29 +02:00
Shauren
cfd1027b88 Build fix 2013-08-26 18:42:35 +02:00
Shauren
4f44cdf2b5 Core/Scripts: Fixed uninitialized variable and memory leaks 2013-08-26 17:38:02 +02:00
Shauren
664ed816df Merge pull request #10636 from jackpoz/mindvision_fix
Core/Aura: Fix SPELL_AURA_BIND_SIGHT invalid read
2013-08-26 08:23:44 -07:00
Nay
2050a36b58 SAI & Scripts: Fix unitialized values found by Valgrind
==3064== Conditional jump or move depends on uninitialised value(s)
==3064==    at 0x19B3031: boss_skarvald_the_constructor::boss_skarvald_the_constructorAI::UpdateAI(unsigned int) (boss_skarvald_dalronn.cpp:217)

==3064== Conditional jump or move depends on uninitialised value(s)
==3064==    at 0x19B3948: boss_dalronn_the_controller::boss_dalronn_the_controllerAI::UpdateAI(unsigned int) (boss_skarvald_dalronn.cpp:388)

==3064== Conditional jump or move depends on uninitialised value(s)
==3064==    at 0x15E2FCC: SmartScript::ProcessAction(SmartScriptHolder&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:144)
==3064== Conditional jump or move depends on uninitialised value(s)
==3064==    at 0x191CB98: dummy_dragonAI::UpdateAI(unsigned int) (boss_sartharion.cpp:961)
==3064==    by 0x191D242: npc_shadron::npc_shadronAI::UpdateAI(unsigned int) (boss_sartharion.cpp:1122)
==3064== Conditional jump or move depends on uninitialised value(s)
==3064==    at 0x19AE913: boss_ymiron::boss_ymironAI::UpdateAI(unsigned int) (boss_ymiron.cpp:215)

==3064== Use of uninitialised value of size 8
...
==3064==    by 0x18A9F4A: boss_illidan_stormrage::boss_illidan_stormrageAI::Reset() (boss_illidan.cpp:1805)

==3064== Conditional jump or move depends on uninitialised value(s)
...
==3064==    by 0x18A9F4A: boss_illidan_stormrage::boss_illidan_stormrageAI::Reset() (boss_illidan.cpp:1805)

==3064== Conditional jump or move depends on uninitialised value(s)
==3064==    at 0x191CB98: dummy_dragonAI::UpdateAI(unsigned int) (boss_sartharion.cpp:961)
==3064==    by 0x191CE88: npc_tenebron::npc_tenebronAI::UpdateAI(unsigned int) (boss_sartharion.cpp:1027)

==3064== Conditional jump or move depends on uninitialised value(s)
==3064==    at 0x191CB98: dummy_dragonAI::UpdateAI(unsigned int) (boss_sartharion.cpp:961)
==3064==    by 0x191D5B8: npc_vesperon::npc_vesperonAI::UpdateAI(unsigned int) (boss_sartharion.cpp:1220)

==3064== Conditional jump or move depends on uninitialised value(s)
...
==3064==    by 0x1868F59: boss_lady_vashj::boss_lady_vashjAI::Reset() (boss_lady_vashj.cpp:206)

==3064== Conditional jump or move depends on uninitialised value(s)
==3064==    at 0x191C14C: dummy_dragonAI::MovementInform(unsigned int, unsigned int) (boss_sartharion.cpp:802)

==3064== Conditional jump or move depends on uninitialised value(s)
==3064==    at 0x1046986: Position::NormalizeOrientation(float) (Object.h:388)
...
==3064==    by 0x17D9463: boss_malchezaar::boss_malchezaarAI::SummonInfernal(unsigned int) (boss_prince_malchezaar.cpp:373)
2013-08-26 16:13:26 +01:00
jackpoz
2a47b602d7 Core/Aura: Fix SPELL_AURA_BIND_SIGHT invalid read
Mind Vision has Aura Effect SPELL_AURA_BIND_SIGHT which adds the target to a special Map container i_objectsToSwitch, used to switch grid containers for target Creatures of this Aura Effect.

When the target is a Creature, when the Creature is removed from world it's added to i_objectsToSwitch and then to i_objectsToRemove, iterated in this order in Map::RemoveAllObjectsInRemoveList() so the reference in i_objectsToSwitch is valid.
When the target is a Player, when the Player logs out it's added to i_objectsToSwitch but then Map::RemovePlayerFromMap() deletes the Player, leaving an invalid reference in i_objectsToSwitch.

Since the whole point of i_objectsToSwitch is to store Creatures and since the stored references are used only if the condition "GetTypeId() == TYPEID_UNIT" is verified, it's safe to add only objects of TYPEID_UNIT type to the container.

Valgrind log:
 Invalid read of size 4
   at 0xC52332: Object::GetTypeId() const (Object.h:140)
   by 0xF540D3: Map::RemoveAllObjectsInRemoveList() (Map.cpp:2136)
   by 0xF53CD2: Map::DelayedUpdate(unsigned int) (Map.cpp:2087)
   by 0xF639B1: MapManager::Update(unsigned int) (MapManager.cpp:292)
   by 0x107CB40: World::Update(unsigned int) (World.cpp:2025)
   by 0xBEB263: WorldRunnable::run() (WorldRunnable.cpp:60)
   by 0x1213792: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:186)
   by 0x515EA35: ACE_OS_Thread_Adapter::invoke() (in /usr/lib/libACE-6.0.3.so)
   by 0x5F19F8D: start_thread (pthread_create.c:311)
   by 0x6A46E1C: clone (clone.S:113)
 Address 0x401eacac is 12 bytes inside a block of size 11,736 free'd
   at 0x4C2B59C: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0xD80239: Player::~Player() (Player.cpp:915)
   by 0xF4D5A2: void Map::DeleteFromWorld<Player>(Player*) (Map.cpp:319)
   by 0xF4EBBB: Map::RemovePlayerFromMap(Player*, bool) (Map.cpp:687)
   by 0xFCC18D: WorldSession::LogoutPlayer(bool) (WorldSession.cpp:531)
   by 0xF1EDD5: WorldSession::HandleLogoutRequestOpcode(WorldPacket&) (MiscHandler.cpp:403)
   by 0xFCAE37: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:312)
   by 0x107EBC6: World::UpdateSessions(unsigned int) (World.cpp:2615)
   by 0x107C94B: World::Update(unsigned int) (World.cpp:1978)
   by 0xBEB263: WorldRunnable::run() (WorldRunnable.cpp:60)
   by 0x1213792: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:186)
   by 0x515EA35: ACE_OS_Thread_Adapter::invoke() (in /usr/lib/libACE-6.0.3.so)
2013-08-26 16:49:02 +02:00
Filip
02258e93c0 DB/Errors: Error fix
Fixes #10634
2013-08-26 16:15:17 +02:00
Nay
9327832896 Merge pull request #10633 from jackpoz/createguild_fix
Core/Guild: Fix uninitialized value on guild creation
2013-08-26 05:27:31 -07:00
jackpoz
287eb260b5 Core/Guild: Fix uninitialized value on guild creation
Fix GuildMember flags left uninitialized when creating a new guild.

Valgrind log:
 Conditional jump or move depends on uninitialised value(s)
  at 0xEE49CE: Guild::Member::WritePacket(WorldPacket&) const (Guild.cpp:714)
  by 0xEE721E: Guild::HandleRoster(WorldSession*) (Guild.cpp:1314)
  by 0xEE9EBA: Guild::SendLoginInfo(WorldSession*) (Guild.cpp:1920)
  by 0xEEB689: Guild::AddMember(unsigned long, unsigned char) (Guild.cpp:2230)
  by 0xEE6A09: Guild::Create(Player*, std::string const&) (Guild.cpp:1199)
  by 0x12A71F9: guild_commandscript::HandleGuildCreateCommand(ChatHandler*, char const*) (cs_guild.cpp:92)
  by 0xC47DBE: ChatHandler::ExecuteCommandInTable(ChatCommand*, char const*, std::string const&) (Chat.cpp:362)
  by 0xC47C23: ChatHandler::ExecuteCommandInTable(ChatCommand*, char const*, std::string const&) (Chat.cpp:343)
  by 0xC488C4: ChatHandler::ParseCommands(char const*) (Chat.cpp:489)
  by 0x1188EE3: WorldSession::HandleMessagechatOpcode(WorldPacket&) (ChatHandler.cpp:217)
  by 0xFCAE37: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:312)
  by 0x107EBC6: World::UpdateSessions(unsigned int) (World.cpp:2615)
2013-08-26 14:01:19 +02:00
Nay
8eaf763235 Core&Tools: Fix multiple issues found by a static code coverage tool 2013-08-26 02:00:18 +01:00
Filip
a4fcbd1a36 DB/SAI: Ribbly Screwspigot (4136)
Fixes #6911
2013-08-26 02:01:23 +02:00
Filip
608f9e7a54 DB/SAI: Out of Body Experience (12327)
Fixes #3084
2013-08-26 01:27:54 +02:00
Machiavelli
39ccd4a460 Merge pull request #10624 from jackpoz/instancesavemgr
Core/Instances: Fix mutex released after being deleted
2013-08-25 12:14:50 -07:00
jackpoz
a3bdf90b0a Core/Instances: Fix mutex released after being deleted
Modify how InstanceSave is deleted so the local mutex can be released before deleting the class itself.

Valgrind log:
 Invalid read of size 4
  at 0x662662B: __pthread_mutex_unlock_usercnt (pthread_mutex_unlock.c:52)
  by 0x55D3C55: ACE_OS::mutex_unlock(pthread_mutex_t*) (OS_NS_Thread.cpp:2335)
  by 0xB20057: Player::CleanupsBeforeDelete(bool) (OS_NS_Thread.inl:3519)
  by 0xD0E2FA: WorldSession::LogoutPlayer(bool) (WorldSession.cpp:527)
  by 0xC66D34: WorldSession::HandleLogoutRequestOpcode(WorldPacket&) (MiscHandler.cpp:403)
  by 0xD0EA82: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:312)
  by 0xD9AD66: World::UpdateSessions(unsigned int) (World.cpp:2615)
  by 0xD9BEC4: World::Update(unsigned int) (World.cpp:1978)
  by 0xA035E5: WorldRunnable::run() (WorldRunnable.cpp:60)
  by 0xEC8D39: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:183)
  by 0x55D7555: ACE_OS_Thread_Adapter::invoke() (OS_Thread_Adapter.cpp:103)
  by 0x6622B4F: start_thread (pthread_create.c:304)
Address 0x1884bb08 is 56 bytes inside a block of size 104 free'd
  at 0x4C279DC: operator delete(void*) (vg_replace_malloc.c:457)
  by 0xC9D533: InstanceSaveManager::RemoveInstanceSave(unsigned int) (InstanceSaveMgr.cpp:159)
  by 0xC9E826: InstanceSave::UnloadIfEmpty() (InstanceSaveMgr.cpp:238)
  by 0xB2003E: Player::CleanupsBeforeDelete(bool) (InstanceSaveMgr.h:84)
  by 0xD0E2FA: WorldSession::LogoutPlayer(bool) (WorldSession.cpp:527)
  by 0xC66D34: WorldSession::HandleLogoutRequestOpcode(WorldPacket&) (MiscHandler.cpp:403)
  by 0xD0EA82: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:312)
  by 0xD9AD66: World::UpdateSessions(unsigned int) (World.cpp:2615)
  by 0xD9BEC4: World::Update(unsigned int) (World.cpp:1978)
  by 0xA035E5: WorldRunnable::run() (WorldRunnable.cpp:60)
  by 0xEC8D39: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:183)
  by 0x55D7555: ACE_OS_Thread_Adapter::invoke() (OS_Thread_Adapter.cpp:103)
2013-08-25 19:08:22 +02:00
Filip
eeb2102d5f DB/Sai: Make cauldrons reward buffs 2013-08-25 18:48:24 +02:00
Nay
3e2f037b20 Core&Tools: Fix warnings and non-pch build 2013-08-25 14:27:40 +01:00
jackpoz
ee3d3ab1ff Core/Player: Fix uninitialized Player field.
m_MonthlyQuestChanged was initialized only when loading a Player from DB and left uninitialized when creating a new Player.

Valgrind log:
 Conditional jump or move depends on uninitialised value(s)
   at 0x1148E2A: Player::_SaveMonthlyQuestStatus(Trinity::AutoPtr<Transaction, ACE_Thread_Mutex>&) (Player.cpp:19694)
   by 0x1146510: Player::SaveToDB(bool) (Player.cpp:19191)
   by 0x14F5D5C: WorldSession::HandleCharCreateCallback(Trinity::AutoPtr<PreparedResultSet, ACE_Thread_Mutex>, CharacterCreateInfo*) (CharacterHandler.cpp:660)

Closes #10620

Signed-off-by: Nay <dnpd.dd@gmail.com>
2013-08-25 14:04:17 +01:00
raczman
ba22baebbd Core/Auth: Implement time-based token for user login as described in RFC 6238.
New column in account table is a base32 of token key bytes,
coincidentally it is the same format Google's Authenticator Android app uses.
If you want that to work, set system time on server correctly and use ntpd.

Closes #10527

Signed-off-by: Nay <dnpd.dd@gmail.com>
2013-08-25 14:02:40 +01:00
jackpoz
e96aa444b0 Core/Threading: Fix race condition in Thread
Increment the reference count of m_task in Thread::start() before spawning the actual Thread that will execute the task, otherwise the thread might finish, decRef the task and delete it.

Valgrind log of the issue:
 Invalid read of size 8
   at 0x1314CAD: ACE_Atomic_Op_GCC<long>::operator++() (Atomic_Op_GCC_T.inl:34)
   by 0x15933FB: ACE_Based::Runnable::incReference() (Threading.h:36)
   by 0x1592D2D: ACE_Based::Thread::start() (Threading.cpp:136)
   by 0x1592C37: ACE_Based::Thread::Thread(ACE_Based::Runnable*) (Threading.cpp:111)
   by 0xF6C463: Master::Run() (Master.cpp:195)
   by 0xF725D0: main (Main.cpp:142)
 Address 0x26137278 is 8 bytes inside a block of size 24 free'd
   at 0x4C2B59C: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0xF67FDB: RARunnable::~RARunnable() (RARunnable.cpp:55)
   by 0x1593441: ACE_Based::Runnable::decReference() (Threading.h:40)
   by 0x1592E92: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:186)
   by 0x515EA35: ACE_OS_Thread_Adapter::invoke() (in /usr/lib/libACE-6.0.3.so)
   by 0x5F19F8D: start_thread (pthread_create.c:311)
   by 0x6A46E1C: clone (clone.S:113)

Closes #10619
2013-08-25 13:48:55 +01:00
Vincent-Michael
174efdf05f DB/Creature: Fix startup errors 2013-08-25 02:15:08 +02:00
Nay
12973de799 Core&Tools: Fix multiple issues found by a static code coverage tool 2013-08-24 22:57:22 +01:00
Filip
61016dcc66 DB/SAI: Cannot Reproduce (13320,13355) & Retest Now (13321,13322,13356,13357) 2013-08-24 20:17:18 +02:00
Nay
573c919c5b Merge pull request #10617 from jackpoz/updatemask_fix
Fix uninitialized UpdateMask field
2013-08-24 09:12:49 -07:00
Filip
5a06f3c90c DB/SAI: The Last of Her Kind credit update
By @untaught, fixes #10254
2013-08-24 18:00:46 +02:00
jackpoz
21459739c6 Fix uninitialized UpdateMask field
Initialized UpdateMask::_bits to NULL in all constructors.
UpdateMask(UpdateMask const& right) constructor sets the field count with SetCount() method before any field initialization. This means that SetCount() will call delete[] on the uninitialized _bits pointer field, leading to undefined behavior.
2013-08-24 17:49:14 +02:00
Filip
adaf5b3d48 DB/Conditions: Awakening Rod 2013-08-24 17:37:00 +02:00