Commit Graph
100 Commits
Author SHA1 Message Date
jackpoz 8ca6371793 Core/Misc: Ensure GetVictim() returns a valid reference when expected
Add a new method EnsureVictim() which asserts a valid not NULL reference will be returned to the caller. Use this whenever the GetVictim() would be dereferenced .
2014-04-19 21:48:22 +02:00
jackpoz 93a68a66c3 Core/MMAPs: Improve NPC behavior with fences and high climbs
Increase the max walkable angle and max walkable climb in MMAPs generator to allow NPCs to jump on fences and climb steps.
This requires MMAPs to be extracted again with mmaps_generator, old extracted MMAPs are still compatible but will not provide the benefits of this commit.
Fixes #9965
2014-04-19 15:35:13 +02:00
jackpoz ba61ec085d Scripts/Commands: Add comment about 9d58410739 changes 2014-04-13 16:02:41 +02:00
jackpoz 9d58410739 Scripts/Commands: Fix memory leak in ".gobject add" command
Valgrind log:
 158 (104 direct, 54 indirect) bytes in 1 blocks are definitely lost in loss record 24 of 73
 at operator new(unsigned long) (vg_replace_malloc.c:319)
 by GameObjectModel::Create(GameObject const&) (GameObjectModel.cpp:152)
 by GameObject::Create(unsigned int, unsigned int, Map*, unsigned int, float, float, float, float, float, float, float, float, unsigned int, GOState, unsigned int) (GameObject.cpp:237)
 by gobject_commandscript::HandleGameObjectAddCommand(ChatHandler*, char const*) (cs_gobject.cpp:155)
2014-04-13 15:01:20 +02:00
jackpoz dc58ec0d6c Scripts/Commands: ".modify speed" targets current Player by default
Allow ".modify speed" command to target current Player if there is no target or if the selected Unit is a Creature.
This behavior could be extended to other commands that require target Players.
2014-04-13 14:06:21 +02:00
jackpoz a07e82530f Scripts/Commands: Fix .mmap loc wrong coordinates
Fix .mmap loc command printing swapped x and y tile coordinates
2014-04-13 13:40:42 +02:00
jackpoz 7b9b0edb5d Core/GameObjects: Fix crash with Summoning Ritual GOs
Fix a crash happening with GAMEOBJECT_TYPE_SUMMONING_RITUAL GameObjects if a Player clicked on the GO, logged out and let another Player click on it.
Issue added in 464c0c1611
Fixes #11856
2014-04-10 20:41:34 +02:00
jackpoz 37e6a3e1d2 Core/CrashHandler: Log GetLastError() id if no description is found
Log the System Error id returned by GetLastError() in case FormatMessage() doesn't find a proper description for that message.
2014-04-08 22:01:56 +02:00
jackpoz a3afd4bb9d Merge pull request #11857 from Unholychick/master
Core/Spells: Fix SPELL_DAMAGE_CLASS_NONE unable to crit
2014-04-08 19:34:18 +02:00
jackpoz 8927a04253 Core/Movement: Fix LoS issue of NPCs chasing targets
Add Line of Sight checks to WorldObject::GetNearPoint(), fixing to TargetedMovementGenerator not reaching a point with valid LoS to the target and MotionMaster::MoveKnockbackFrom() knocking creatures inside walls.
Remove unused code.
2014-04-07 22:16:31 +02:00
jackpoz 98a9a088bf Merge pull request #11836 from Unholychick/patch-1
Partially revert 8edf6247c0
2014-04-06 00:17:18 +02:00
jackpoz 5b1a28076e Scripts/Ulduar: Fix uninitialized values
Fix uninitialized values in Ulduar script reported by Valgrind.
2014-04-05 23:41:01 +02:00
jackpoz af78f2b7c5 Core/CrashHandler: Add more informations about locals
Handle BasicType btChar and custom type std::basic_string<char,std::char_traits<char>,std::allocator<char> > (std::string).
This allows WheatyExceptionReport to log the text stored in char*, char[] and std::string.
2014-04-05 22:24:59 +02:00
jackpoz c4f4a023ea Core/Chat: Fix valid chat links being handled as invalid
Fix a case where valid chat links would have been handled as invalid.
This happened if these conditions were true:
- the link was a profession and the link name started with the same name of the profession, like spell id 61120 in esES locale "Inscripción de la tormenta de maestro" with profession name "Inscripción"
- the profession name was the same for more than 1 locale available, like esES and esMX, or enUS and enGB

Restore memmove() instead of memcpy() wrongly replaced in 791130f6fa , it's unsafe to use memcpy() with overlapping memory regions.
2014-04-04 22:16:14 +02:00
jackpoz 0930482fa4 Core/Misc: Fix uninitialized values
Fix Position members not being always initialized.
Valgrind log:
 at : Position::NormalizeOrientation(float) (Object.h:388)
 by : Position::SetOrientation(float) (Object.h:315)
 by : Position::Relocate(Position const&) (Object.h:310)
 by : spell_ulduar_stone_grip::spell_ulduar_stone_grip_AuraScript::OnRemoveVehicle(AuraEffect const*, AuraEffectHandleModes) (boss_kologarn.cpp:592)
2014-04-02 20:42:46 +02:00
jackpoz 10ba63cf3d Core/Misc: Fix typo in f47962f670 2014-03-31 21:10:29 +02:00
jackpoz f47962f670 Core/Misc: Fix some static analysis issues
Add some asserts and additional NULL checks as sanity checks.
2014-03-31 20:59:33 +02:00
jackpoz 0056ec04c0 Core/Misc: Fix warning with GCC 2014-03-30 13:30:00 +02:00
jackpoz dfca19444a Core/Misc: Fix warning 2014-03-29 21:51:45 +01:00
jackpoz 4cffd2e707 Core/Commands: Handle "" as empty string argument
Fixes #11548
2014-03-29 21:07:46 +01:00
jackpoz a3e56b0689 Core/Dependencies: Upgrade to jemalloc-3.5.1 2014-03-28 22:34:39 +01:00
jackpoz f7659e5c1a Core/Battlegrounds: Fix log errors about creatures not found
Move "Battleground::GetBGCreature: creature not found for BG" error log to INFO level when the caller expects no creatures to be found, like on Battleground startup.
Closes #3538
2014-03-28 22:30:33 +01:00
jackpoz 8c44259fae Core/Misc: Fix some static analysis issues
Fix uninitialized values, most of which are false positives, always initialized before being accessed.
Add some asserts and additional NULL checks as sanity checks. Use SpellMgr::EnsureSpellInfo() if the spell id is valid and always supposed to return a valid not-NULL SpellInfo* .
2014-03-27 21:43:59 +01:00
jackpoz 5570e32d0e Core/Misc: Fix assertion triggered
Change an assertion added in 6dcd8c8545 with a NULL check, properly handling the case of a NULL parameter.
Fixes #11771
2014-03-24 20:13:55 +01:00
jackpoz 6dcd8c8545 Core/Misc: Fix some static analysis issues
Fix some static analysis issues about:
- uninitialized values, most of which are false positives, always initialized before being accessed
- unchecked return values
- dead code never executed
- bad formatting leading to wrong behavior

Please ensure EventMap is never used with event id set to 0 or those events will never execute.
2014-03-22 14:54:32 +01:00
jackpoz 9e99db035f Core/Misc: Fix some static analysis issues
Add some asserts and additional NULL checks as sanity checks.
2014-03-21 22:47:58 +01:00
jackpoz 4c27c83efa Core/Misc: Fix some static analysis issues 2014-03-20 21:34:05 +01:00
jackpoz 678d886da2 Merge pull request #11732 from Dehravor/loot-exploit
Core/Loot: Fix an exploit that allowed players to loot infinite amount of items that have condition(s)
2014-03-17 19:40:43 +01:00
jackpoz f26a028d97 Core/Misc: Fix some static analysis issues
Fix some static analysis issues about uninitialized values. Most of them are false positives, always initialized before being accessed.
2014-03-16 14:18:33 +01:00
jackpoz a1aa4547b3 Scripts/Krikthir the Gatewatcher: Fix EVENT_ANUBAR_CHARGE event not being triggered
Fix EVENT_ANUBAR_CHARGE not being triggered due to value 0 being set to the EVENT_ANUBAR_CHARGE enum, even if 0 is a special value for EventMap to specify no event was triggered.
Issue added in a127c0e1a7
2014-03-15 20:08:55 +01:00
jackpoz e30b471f8e Scripts/AhnKahet: Fix some uninitialized values
Initialize all class fields in the constructor, even if they are set in Reset() and they shouldn't be accessed before Reset() is called.
This fixes 2 Coverity reports.
2014-03-15 20:04:59 +01:00
jackpoz 3b247f6bca Scripts/ZulGurub/Jeklik: Add missing "break" 2014-03-15 19:45:44 +01:00
jackpoz 61c9891d6a Core/Gossip: Fix crash added in 6c64fa8de3
Fix NULL dereference crash caused by a typo in 6c64fa8de3
2014-03-15 19:30:55 +01:00
jackpoz ba28b16d2e Scripts/TheStormPeaks: Possible crash fix
Apply safe NULL checks added in 7d881a0739 to similar code in same script
2014-03-09 17:17:12 +01:00
jackpoz d357597270 Scripts/Commands: Fix crash in ".kick" command
Fix a NULL dereference exception happening when using .kick command caused by a strtok(NULL) call without a previous call to the string to be tokenized.
Issue added in 101cad1f28
2014-03-09 17:09:15 +01:00
jackpoz e4ab18a69c Dep/ACE: Fix assertion triggered on shutdown
Fix assertion triggered on shutdown on Windows platform Debug mode by back-porting fix from ACE revision 96226.
Fixes #9770.
2014-03-02 14:06:05 +01:00
jackpoz d5d2805771 Core/MMAPs: Replace an assert with error log
Replace an assert in PathGenerator::BuildPolyPath() about invalid poly reference with an error log.
Fixes #11493 .
2014-02-27 21:03:57 +01:00
jackpoz 61890bce7c Scripts/Onyxia Lair: Fix debug assertions about iterators 2014-02-26 21:44:51 +01:00
jackpoz 272009ebee Core/MMAPs: Add support for raycast
Add an optional parameter "straightLine" to PathGenerator::CalculatePath() which will use raycast instead of path finding and will return only complete path from start to end position.
Implement this new type of path in SPELL_EFFECT_CHARGE , fixing strange behaviors when using Charge with mmaps enabled.
2014-02-24 21:01:50 +01:00
jackpoz 50e0c39f84 Core/Battlegrounds: Fix invalidated iterator crash
Partially revert e1bee86ee6 and restore 9ba3d07fc2 to store battleground queues as std::list instead of std::deque because deque::erase() invalidates all iterators.
2014-02-23 20:43:37 +01:00
jackpoz f7bc86a17c Core/MMAPs: Update recast
Update recast from https://github.com/memononen/recastnavigation/commit/1be9de72d87dcfdecf6bea30f5461745f7d7afe6 to https://github.com/memononen/recastnavigation/commit/740a7ba51600a3c87ce5667ae276a38284a1ce75 .
This differs from https://github.com/TrinityCore/TrinityCore/commit/aa645683b8b25bfb35cb977678daf5c56c1531e6 because it includes a fix https://github.com/memononen/recastnavigation/commit/77ebf643531c90ea712b496e23c48f0b0671f43d which correctly extract tile connections when using rcMergePolyMeshes(), used by mmaps_generator.
MMAPs version is now set to 5.

Re-extract MMAPs using mmaps_generator , any old extracted MMAPs will not work.
2014-02-23 12:39:16 +01:00
jackpoz 006d72a828 Core/MMAPS: Fix invisible wall issue in MMAPS.
Fix invisible wall issues in MMAPS caused by tile connections not being extracted correctly.
This reverts aa645683b8 and restores an old version of recastnavigation, most likely https://github.com/memononen/recastnavigation/commit/1be9de72d87dcfdecf6bea30f5461745f7d7afe6 .

Re-extracting MMAPS is required.
2014-02-13 22:19:56 +01:00
jackpoz 1aada1f5ef Merge pull request #11584 from Dehravor/group
Group related fixes
2014-02-10 19:49:38 +01:00
jackpoz 7a188c8685 Core/SAI: Fix assertion in SMART_ACTION_CALL_RANDOM_RANGE_TIMED_ACTIONLIST
Fix assertion triggered in SMART_ACTION_CALL_RANDOM_RANGE_TIMED_ACTIONLIST if max entry is less than min entry
2014-02-09 16:09:09 +01:00
jackpoz 28946ac5db Core/SAI: Improve error log
Log both target and current Object when checking if a Creature/GameObject have SmartAI enabled.
2014-02-08 22:38:29 +01:00
jackpoz dbed818f6f Core/SAI: Fix crash
Disable script type SMART_SCRIPT_TYPE_TIMED_ACTIONLIST actions if they are trying to overwrite the timed action list while iterating it.
This was invalidating the iterator and deleting any smart action stored in it, including the current executed one.

Valgrind log:
 Invalid read of size 1
  at SmartScript::OnUpdate(unsigned int) (SmartScript.cpp:3258)
  by SmartAI::UpdateAI(unsigned int) (SmartAI.cpp:331)
  by Creature::Update(unsigned int) (Creature.cpp:544)
 Address 0x1807d9b2 is 10 bytes after a block of size 40 alloc'd
  at operator new(unsigned long) (vg_replace_malloc.c:319)
  ...
  by SmartAIMgr::LoadSmartAIFromDB() (SmartScriptMgr.cpp:231)
  by World::SetInitialWorldSettings() (World.cpp:1724)
  by Master::Run() (Master.cpp:169)
  by main (Main.cpp:142)
2014-02-08 21:59:35 +01:00
jackpoz aaa4b3a124 Scripts/Eastern Plaguelands: Fix flypath exploit
Fix npc id 17209 in Eastern Plaguelands enabling taxi cheat to players just by talking to it.
2014-02-08 17:22:29 +01:00
jackpoz fdc71114ef Merge pull request #11580 from Dehravor/warden
Core/Warden: Fix crash

Fix NULL dereference crash in case Warden is disabled (in configs or on Mac OS X platform) and client sends a CMSG_WARDEN_DATA opcode
2014-02-08 11:55:50 +01:00
jackpoz 592b57a251 Shared/Logs: Code cleanup
Remove unneeded check added in 89af6097f3
2014-02-08 11:35:25 +01:00
jackpoz 89af6097f3 Shared/Logs: Make AppenderFile more thread-safe
In case of dynamic file names don't store the FILE* handle in a shared class variable but keep it only at function scope.

Valgrind log:
  at _IO_un_link (genops.c:69)
  by fclose@@GLIBC_2.2.5 (iofclose.c:55)
  by AppenderFile::CloseFile() (AppenderFile.cpp:94)
  by AppenderFile::_write(LogMessage const&) (AppenderFile.cpp:66)
  by Appender::write(LogMessage&) (Appender.cpp:102)
  by Logger::write(LogMessage&) const (Logger.cpp:63)
  by Log::write(LogMessage*) (Log.cpp:279)
  by Log::vlog(std::string const&, LogLevel, char const*, __va_list_tag*) (Log.cpp:267)
  by Log::outMessage(std::string const&, LogLevel, char const*, ...) (Log.h:129)
Address 0x2a1bd2d0 is 0 bytes inside a block of size 568 free'd
  at free (vg_replace_malloc.c:468)
  by fclose@@GLIBC_2.2.5 (iofclose.c:85)
  by AppenderFile::CloseFile() (AppenderFile.cpp:94)
  by AppenderFile::_write(LogMessage const&) (AppenderFile.cpp:66)
  by Appender::write(LogMessage&) (Appender.cpp:102)
  by Logger::write(LogMessage&) const (Logger.cpp:63)
  by Log::write(LogMessage*) (Log.cpp:279)
  by Log::vlog(std::string const&, LogLevel, char const*, __va_list_tag*) (Log.cpp:267)
  by Log::outMessage(std::string const&, LogLevel, char const*, ...) (Log.h:129)
2014-02-07 23:35:03 +01:00
jackpoz 672e06a951 Shared/Logs: Add workaround for "w" flag used with dynamic name files
Ignore "w" flag and always use "a" for log files with dynamic name since the file handle is created at every log line and "w" would delete any other logged line from previous _write() calls.
The best solution would be to overwrite only at first call and append at any other call.
2014-02-07 22:23:24 +01:00
jackpoz 84e73448f2 Core/Spells: Possible crash fix
Get Unit target with the proper method instead of retrieving Object target and then casting it to Unit, possible dereferencing NULL.
Updates #11560
2014-02-06 22:11:06 +01:00
jackpoz 20a1f4d28e Core/CrashHandler: Add more informations about locals
Handle SymTagData with inner type of SymTagPointerType.
Increase buffer sizes to avoid buffer overflows.
Avoid infinite loops by logging the children of each type only once.
Avoid too deep nesting by adding a max nesting level.
Print the address for arrays instead of just the name.
2014-02-06 22:07:12 +01:00
jackpoz 8f29fb9aee Core/Spell: Handle SPELL_AURA_FORCE_REACTION missing cases
Always check forced reputation ranks before any other faction check to get the reaction between 2 units.
Fixes #5790
2014-02-01 21:21:47 +01:00
jackpoz b054275fb2 Shared/Logs: Fix crash in Console log output
Correctly handle the return value of vsnprintf() which returns -1 if the buffer is too small http://msdn.microsoft.com/en-us/library/1kt27hek.aspx . In this case just truncate the output.
This caused a crash on character delete if Logger.entities.player.dump was enabled and set to 3.
Fixes #11539
2014-01-31 22:11:49 +01:00
jackpoz 68d48ecbd1 Core/Arena: Fix arena season not always appearing to clients
Arena season sent to client with SMSG_INIT_WORLD_STATES opcode was not sent if Player was on a zone with id 0 on login. Initializing the zone id to -1 will always trigger UpdateZone() properly on login.
Fixes #10623
2014-01-31 20:47:47 +01:00
jackpoz 856e0933b5 Scripts/HoR: Fix log error
Fix "DoZoneInCombat called for creature that has empty threat list" error caused by DoZoneInCombat() called by IsSummonedBy() in a script before the Creature is allowed to enter combat.
2014-01-30 21:29:37 +01:00
jackpoz 378d27f9bc Core/Splines: Fix "velocity > 0.1f" error
Updates #6191.
2014-01-30 20:03:13 +01:00
jackpoz 88a5d01016 Core/Calendar: Crash fix
Attempt to fix #11512 crash by adding a NULL check since GetEvent() can return NULL.
2014-01-25 21:28:01 +01:00
jackpoz 92c3ca7828 Core/CrashHandler: Add more informations about locals
Log "NULL" for NULL pointers.
Log the correct type instead of <user defined> for pointers and log its fields recursively.
Log locals of all threads.
Log the address if retrieving the value threw an exception.
Increase buffer sizes to avoid buffer overflows.
2014-01-23 21:41:15 +01:00
jackpoz 138a336384 CoreCore/CrashHandler: Handle CRT asserts in Windows build
Handle CRT asserts in Windows crash handler instead of popping up a Abort/Retry/Ignore window
2014-01-19 17:59:01 +01:00
jackpoz 939a25346b Core/CrashHandler: Fix issues on Windows crash handler
Fix few issues on WheatyExceptionReport:
- fix NULL dereference exception in GetLogicalAddress() when TC assert in triggered ( *((volatile int*)NULL) = 0; )
- fix infinite loop in DumpTypeIndex() when dumping std types like std::string
- fix FormatSymbolValue() pointing to wrong address when accessing local variable values
- use portable types instead of x86 specific types, this fixes some wrong address issues on x86 platform
- use bigger buffers to format symbols to avoid buffer overflows
2014-01-19 14:05:07 +01:00
jackpoz cbba22ba68 Core/SAI: Fix assertion triggered in SmartScript
Remove assertion in SmartScript added in b8625f41bd and handle SmartScripts with GetBaseObject() returning NULL , like SmartTrigger . In this case SmartScript::mTargetStorage cannot be sanitized and might contain references to free'd WorldObjects if the script doesn't last a single Map::Update() call.
2014-01-15 20:20:01 +01:00
jackpoz d78e69cdc6 Core/Instances: Fix memory leak in InstanceSaveMgr
Fix memory leak in InstanceSaveMgr added in 1f170c99ef .
Make InstanceSave::SetToDelete() private since it's not supposed to be used by anything other than InstanceSave or its friend class InstanceSaveMgr .
2014-01-13 22:52:35 +01:00
jackpoz b8625f41bd Core/SAI: Fix crash in SmartScript
Fix crash in SmartScript storing WorldObject* instead of guid as targets in SmartScript::mTargetStorage , used by SMART_TARGET_STORED target type , SMART_ESCORT_TARGETS and other escort related code.
Fixes #11228 , #10157 .

Valgrind log:
 Invalid read of size 4
  at : Object::GetTypeId() const (Object.h:140)
  by : SmartScript::IsPlayer(WorldObject*) (SmartScript.h:73)
  by : SmartScript::ProcessAction(SmartScriptHolder&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:330)
  by : SmartScript::ProcessEvent(SmartScriptHolder&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:2662)
  by : SmartScript::ProcessAction(SmartScriptHolder&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:2226)
  by : SmartScript::ProcessTimedAction(SmartScriptHolder&, unsigned int const&, unsigned int const&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:2238)
  by : SmartScript::ProcessEvent(SmartScriptHolder&, Unit*, unsigned int, unsigned int, bool, SpellInfo const*, GameObject*) (SmartScript.cpp:2685)
  by : SmartScript::UpdateTimer(SmartScriptHolder&, unsigned int) (SmartScript.cpp:3198)
  by : SmartScript::OnUpdate(unsigned int) (SmartScript.cpp:3244)
  by : SmartAI::UpdateAI(unsigned int) (SmartAI.cpp:331)
  by : Creature::Update(unsigned int) (Creature.cpp:544)
  by : void Trinity::ObjectUpdater::Visit<Creature>(GridRefManager<Creature>&) (GridNotifiers.cpp:340)
2014-01-12 20:23:13 +01:00
jackpoz 086622bfc1 Core/Battlegrounds: Fix offline players not being resurrected when Battleground ends
Fixes #7081
2014-01-11 17:18:36 +01:00
jackpoz 6f6ad952b9 Core/Wintergrasp: Fix typo in CMSG_HEARTH_AND_RESURRECT handler
Fix CMSG_HEARTH_AND_RESURRECT handler trying to resurrect players with 100x hp/mana/energy ( SetHealth()/SetPower() were sanitizing the input anyway ) .
2014-01-11 15:23:52 +01:00
jackpoz 8fcfabe784 Core/Spells: Fix potions cooldown in combat
Fix a cooldown issue related to potions allowing Players in combat to use more than 1 potion in a row, especially with high latency.
This also fixes an exploit about using infinite potions in combat just by skipping the client-side check.
The original implementation c064c2e2e1 was missing a check in Spell::CheckCast() about this particular case since Potion cooldown is added only after the Player goes out of combat.
Fixes #1259 .
2014-01-10 22:39:08 +01:00
jackpoz 1f170c99ef Core/Instances: Fix Instance binding
Fix players not being bound to instance if the group was disbanded before killing any boss.
Fixes #437
2014-01-03 18:56:11 +01:00
jackpoz 82181a8622 Core/Loot: Fix Master Loot exploit
Fix Master Loot exploit allowing any online Player to receive loot.
2014-01-01 21:42:15 +01:00
jackpoz 0c2f5340cc Core/Quests: Fix crash on startup
Fix a crash on startup when loading Quest POIs if quest_poi table referenced POIs not in quest_poi_points table, caused by 5de48a67c6 .
Fixes 11390.
2013-12-31 20:08:11 +01:00
jackpoz 64b42c75d2 Scripts/Misc: Code cleanup
Remove some NULL checks not needed anymore after 3744c14184 .
Fix an invalid Creature to TempSummon cast.
2013-12-30 23:36:49 +01:00
jackpoz 0895cdc8ad Buildsystem: Fix GCC not being recognized on Ubuntu
Fix CMake not recognizing /usr/bin/cc as GCC on Ubuntu ( 13.10 x64 ) .
2013-12-30 16:50:16 +01:00
jackpoz 799daaae55 Core/Transports: Fix array overflow
Fix an array overflow in TransportMgr::GeneratePath() spline code.

Valgrind log:
 Invalid read of size 4
  at : G3D::Vector3::operator*(float) const (Vector3.h:650)
  by : Movement::C_Evaluate(G3D::Vector3 const*, float, G3D::Matrix4 const&, G3D::Vector3&) (Spline.cpp:103)
  by : Movement::SplineBase::SegLengthCatmullRom(int) const (Spline.cpp:171)
  by : Movement::SplineBase::SegLength(int) const (in /home/jackpoz/trinity/bin/worldserver)
  by : Movement::Spline<double>::initLengths() (SplineImpl.h:86)
  by : TransportMgr::GeneratePath(GameObjectTemplate const*, TransportTemplate*) (TransportMgr.cpp:125)
  by : TransportMgr::LoadTransportTemplates() (TransportMgr.cpp:78)
 Address 0x1d07d154  is 8 bytes after a block of size 300 alloc'd
2013-12-30 16:15:37 +01:00
jackpoz 5c64dade0f Scripts/Misc: Fix uninitialized values
Fix uninitialized values in scripts reported by valgrind.
Fix target and GetOwner() NULL dereferences .
2013-12-29 23:01:00 +01:00
jackpoz c40cdc2968 Core/Chat: Fix assert triggered by .npc add
Fix an assert in Aura::_UnapplyForTarget() caused by ".npc add" changing the guid of the spawned Creature.
2013-12-29 19:37:20 +01:00
jackpoz e016ef3dbd Merge branch 'master' of github.com:TrinityCore/TrinityCore 2013-12-29 16:27:25 +01:00
jackpoz 90c63e4818 Scripts/Misc: Fix uninitialized values
Fix uninitialized values in scripts reported by valgrind.
2013-12-29 16:05:31 +01:00
jackpoz 3744c14184 Scripts/Misc: Ensure Creatures are in instances when required
Create ScriptedAIs that require a InstanceScript reference only if the InstanceScript exists, so if these Creatures are in an instance. ScriptedAIs that don't require a InstanceScript reference have not been modified.
This fixes many possible NULL dereference crashes happening when spawning a scripted Creature outside of an instance.
Fixed a GetOwner() and a ToPlayer() NULL dereference crashes too.
2013-12-29 01:19:52 +01:00
jackpoz 2a7f03039d Core/Misc: Fix warnings
Fix warnings appearing with -Wstrict-aliasing flag.
2013-12-28 17:24:43 +01:00
jackpoz e255d1d376 Core/Transports: Fix possible crash
Fix a crash happening when deleting an instance with transports. This case doesn't appear in current sources but could have happened in ICC and HoR.
2013-12-25 23:11:22 +01:00
jackpoz 9b88a789e6 Scripts/Blood Furnace: Fix crash in Broggok script
Fix a NULL dereference exception in Broggok npc id 17380 script, happening when spawning it outside of an instance.
Fixes #11344
2013-12-25 19:17:44 +01:00
jackpoz d190228112 Merge branch 'master' of github.com:TrinityCore/TrinityCore 2013-12-22 14:00:46 +01:00
jackpoz b0ffbb2179 Core/Auth: Fix expiring account bans
Fix a database race condition in authserver that would delay the account ban expiry by 1 login because the query that would have removed the ban was executed asynchronously.
2013-12-22 14:00:14 +01:00
jackpoz b3c810a0fb Core/Misc: Fix warning
Partially revert f0a742a8c4 to fix a warning about unhandled switch case (the same case that Coverity reported as dead code) .
2013-12-16 19:52:50 +01:00
jackpoz b8908606fc Core/AH: Fix memory leak
Fix memory leak in Auction House when creating an auction with stackable items and a stack of the same amount in the inventory. Leak added in 15a2acfb52 .
2013-12-16 19:38:49 +01:00
jackpoz e90a7f82d4 Core/AI: Fix CreatureAI left uninitialized
Fix CreatureAI left uninitialized for 1 server tick for Creatures with DeathState:DEAD . This is a workaround required after c9cf2f059f changes .

Valgrind log:
 Conditional jump or move depends on uninitialised value(s)
  at : npc_draenei_survivor::npc_draenei_survivorAI::MoveInLineOfSight(Unit*) (zone_azuremyst_isle.cpp:104)
  by : CreatureAI::MoveInLineOfSight_Safe(Unit*) (CreatureAI.cpp:123)
  by : CreatureUnitRelocationWorker(Creature*, Unit*) (GridNotifiers.cpp:134)
  by : Trinity::AIRelocationNotifier::Visit(GridRefManager<Creature>&) (GridNotifiers.cpp:252)
 Uninitialised value was created by a heap allocation
  at : operator new(unsigned long) (vg_replace_malloc.c:319)
  by : npc_draenei_survivor::GetAI(Creature*) const (zone_azuremyst_isle.cpp:66)
  by : ScriptMgr::GetCreatureAI(Creature*) (ScriptMgr.cpp:792)
  by : FactorySelector::selectAI(Creature*) (CreatureAISelector.cpp:41)
  by : Creature::AIM_Initialize(CreatureAI*) (Creature.cpp:716)
  by : Creature::AddToWorld() (Creature.cpp:190)
2013-12-15 21:14:47 +01:00
jackpoz dd4a774c4c Core/Transports: Fix memory leak on shutdown
Fix world transports not being deleted on shutdown.
2013-12-15 18:51:34 +01:00
jackpoz f0a742a8c4 Core/Misc: Remove unused code
Remove unused debugging code added in MaNGOS r5067.
Remove dead code from a switch found by Coverity.
2013-12-15 13:37:49 +01:00
jackpoz ca6b9df261 Core/Misc: Fix some static analysis issues
Fix some static analysis issues about uninitialized values.
2013-12-14 19:36:43 +01:00
jackpoz 1c0903e286 Core/Misc: Fix some static analysis issues
Fix some static analysis issues about uninitialized values. Most of them are false positives, always initialized before being accessed, while some of them are real issues spotted by valgrind too.
2013-12-14 18:41:26 +01:00
jackpoz e28cc4660b Core/Movement: Fix invalid memory access
Fix the stack implementation used in MotionMaster and added few sanity checks to ensure no underflows will be made.

Valgrind log:
 Invalid read of size 8
  at : MotionMaster::top() const (MotionMaster.h:115)
  by : MotionMaster::pop() (MotionMaster.h:91)
  by : MotionMaster::~MotionMaster() (MotionMaster.cpp:74)
  by : Unit::~Unit() (Unit.cpp:296)
  by : Player::~Player() (Player.cpp:880)
  by : WorldSession::HandleCharCreateCallback(Trinity::AutoPtr<PreparedResultSet, ACE_Thread_Mutex>, CharacterCreateInfo*) (CharacterHandler.cpp:665)
  by : WorldSession::HandleCharCreateCallback(Trinity::AutoPtr<PreparedResultSet, ACE_Thread_Mutex>, CharacterCreateInfo*) (CharacterHandler.cpp:516)
2013-12-14 16:51:47 +01:00
jackpoz 822755ca87 Core/Misc: Fix some static analysis issues
Fix some static analysis issues about uninitialized values.
2013-12-09 21:10:42 +01:00
jackpoz f418f4cf94 Core/Misc: Fix some static analysis issues
Fix some static analysis issues about uninitialized values in scripts.
Add spell id validation in Unit::SpellNonMeleeDamageLog() .
2013-12-08 22:04:30 +01:00
jackpoz 8669633921 Core/Commands: Fix NULL dereference crash in .npc set link
Fix NULL dereference crash in .npc set link happening when passing a not-existent Creature guid as parameter, es. ".npc set link -1" .
Issue spotted by static analysis, added in c05ed659cb
2013-12-04 20:42:51 +01:00
jackpoz 7806b7c493 Core/Chat: Fix ChatFlood.MessageCount not being handled correctly
Fix Anti-flood chat system to always allow 1 more message than the count specified in the ChatFlood.MessageCount config parameter.
2013-12-03 21:47:52 +01:00
jackpoz 5bbded18b5 Core/Misc: Fix some static analysis issues
Fix some static analysis issues about missing NULL checks.
Pass safe Creature pointer instead of summoning a Creature, passing the GUID and retrieve the same Creature from GUID.
2013-12-03 21:46:00 +01:00
jackpoz 04cc51a6cf Core/Misc: Fix some static analysis issues
Fix some static analysis issues, mostly false positive about fields not initialized in the constructor. It's good practice anyway to always initialize them.
2013-12-01 16:19:30 +01:00
jackpoz ff20596933 Core/World: Remove unused code
Remove unused code added in f20b25d1c9
2013-11-29 22:37:31 +01:00
jackpoz 24db2a5e1f Core/RBAC: Fix rare NULL dereference
Fix a rare NULL dereference happening if 'rbac_default_permissions' table has secId "255" as first row.
2013-11-29 21:06:21 +01:00