Commit Graph
100 Commits
Author SHA1 Message Date
jackpoz 57069b393d Core/Dependencies: Upgrade to jemalloc-3.6.0 2014-06-19 22:20:55 +02:00
jackpoz 4688676f3e Shared/Misc: Improve Windows crash report
Improve WheatyExceptionReport Windows crash report to write a cleaner and more readable crash report, in particular:
- Fix missing variable Type in some cases
- Fix missing variable Name in some cases
- Properly format each member to avoid confusion when reading the log
- Add support for double pointers, e.g. Type**
- Add initial support for arrays, logging the number of elements and the first 10 elements for now. UDT members of array elements are not supported yet
- Skip static members, SymTagVTable and other not needed types
- Skip SymTagUDT with no children
- Fix possible stack overflows when logging strings/char*/char[] values.
- Fix "punting on symbol" error happening when trying to dereference bad pointers.
- Fix <user defined> type being logged instead of the correct type when reaching WER_MAX_NESTING_LEVEL or with pointer types with invalid addresses.
2014-06-15 18:46:20 +02:00
jackpoz 26a7916faf Core/Misc: Fix gcc build 2014-06-11 21:40:50 +02:00
jackpoz d1d91d193d Merge commit https://github.com/Unholychick/TrinityCore/commit/52c0fc96bb4a8a62218bd383f360c0e1350ef62a 2014-06-11 21:00:16 +02:00
jackpoz f19c6f4091 Core/PetAI: Fix memory leak
Fix memory leak added in e7f0808d46

Valgrind log:
395,712 (390,216 direct, 5,496 indirect) bytes in 229 blocks are definitely lost in loss record 65 of 67
 at operator new(unsigned long) (vg_replace_malloc.c:320)
 by PetAI::UpdateAI(unsigned int) (PetAI.cpp:167)
 by Creature::Update(unsigned int) (Creature.cpp:541)
 by TempSummon::Update(unsigned int) (TemporarySummon.cpp:47)
2014-06-10 22:50:24 +02:00
jackpoz 5ebf24281c Core/NetworkIO: Adjust more packet throttling values
Ignore some opcodes that don't cause any trouble.
Remove old Allow/Disable Anti-DoS system since it's no longer required.
2014-06-09 23:11:10 +02:00
jackpoz bd4be27aeb Core/Calendar: Sanitize calendar event parameters
Prevent events added in the past which in some conditions would cause an infinite loop in the client.
2014-06-09 23:11:05 +02:00
jackpoz 3c8503bea7 Revert "Core/Calendar: Fix memory leak when malformed CMSG_CALENDAR_ADD_EVENT is received"
This partially reverts commit 51e38872c7.
The stack-initialized variable calendarEvent would have called CalendarMgr::FreeEventId() when it went out of scope, marking the current event id as free and allowing next event to overwrite current event.
This doesn't fix the memory leak issue which still needs to be addressed in a proper way.
2014-06-09 23:11:04 +02:00
jackpoz 6dc76223fb Core/Banks: Fix some bank exploits
Re-implement the cheat checks removed in a12501fb5e and check if Player can interact with the Banker when handling bank-related opcodes.
2014-06-09 23:10:58 +02:00
jackpoz 9c240c14ec Core/Talents: Align server checks to Client limits
Set the max amount of talents to process in CMSG_LEARN_PREVIEW_TALENTS_PET to 30 ( 24 talents rounded up ).
2014-06-09 23:10:44 +02:00
jackpoz 1e545eaa70 Core/Talents: Align server checks to Client limits
Set the max amount of talents to process in CMSG_LEARN_PREVIEW_TALENTS to 150 ( 44 talents for 3 trees rounded up ).
2014-06-09 23:10:43 +02:00
jackpoz 3a9c730083 Core/Tickets: Don't try to save the same sub-survey more than once 2014-06-09 23:10:38 +02:00
jackpoz d52eb14bb6 Core/NetworkIO: Adjust more packet throttling values
Ignore some opcodes that don't cause any trouble.
Remove old Allow/Disable Anti-DoS system since it's no longer required.
2014-06-09 21:37:44 +02:00
jackpoz fc7062049f Core/Calendar: Sanitize calendar event parameters
Prevent events added in the past which in some conditions would cause an infinite loop in the client.
2014-06-08 17:33:17 +02:00
jackpoz 927f16de49 Revert "Core/Calendar: Fix memory leak when malformed CMSG_CALENDAR_ADD_EVENT is received"
This partially reverts commit 51e38872c7.
The stack-initialized variable calendarEvent would have called CalendarMgr::FreeEventId() when it went out of scope, marking the current event id as free and allowing next event to overwrite current event.
This doesn't fix the memory leak issue which still needs to be addressed in a proper way.
2014-06-08 17:18:07 +02:00
jackpoz 5fee5b0125 Core/Banks: Fix some bank exploits
Re-implement the cheat checks removed in a12501fb5e and check if Player can interact with the Banker when handling bank-related opcodes.
2014-06-07 22:47:50 +02:00
jackpoz d565c2b303 Core/Talents: Align server checks to Client limits
Set the max amount of talents to process in CMSG_LEARN_PREVIEW_TALENTS_PET to 30 ( 24 talents rounded up ).
2014-06-05 22:50:11 +02:00
jackpoz 7d623eed18 Core/Talents: Align server checks to Client limits
Set the max amount of talents to process in CMSG_LEARN_PREVIEW_TALENTS to 150 ( 44 talents for 3 trees rounded up ).
2014-06-05 22:19:02 +02:00
jackpoz bd45a0bba9 Core/Tickets: Don't try to save the same sub-survey more than once 2014-06-04 19:56:13 +02:00
jackpoz 0c1ddc970d Core/Misc: Kick player in case of multiple CMSG_PLAYER_LOGIN
Kick player in addition to logging an error in case of multiple CMSG_PLAYER_LOGIN.
2014-06-02 17:03:31 +02:00
jackpoz 282a7cad7d Core/Misc: Code cleanup
Remove old unused opcode handler WorldSession::HandlePageQuerySkippedOpcode() for CMSG_PAGE_TEXT_QUERY since it's already handled by WorldSession::HandlePageTextQueryOpcode()
2014-06-01 16:15:27 +02:00
jackpoz 70bd70080d Core/QuestPOI: Mitigate possible DoS with CMSG_QUEST_POI_QUERY
Avoid sending POIs for same quest if the client somehow sent duplicates quest id in same CMSG_QUEST_POI_QUERY packet. This also reduce the effects of possible DoS and increases the difficulty to cause it.
Fix a typo which caused no quest POIs to be sent at all if the client queried data for 25 quests.
2014-06-01 13:33:46 +02:00
jackpoz 6a54ed88c6 Core/NetworkIO: Fix performance loss when handling bad packets
Revert f9cb4280bd which retrieved the callstack each time a ByteBufferPositionException or a ByteBufferSourceException occurred, for example with bad packet structure.
2014-06-01 00:29:33 +02:00
jackpoz 8d539ee6c0 Merge pull request #12162 from Trisjdc/aura_split_damage_breaking
Core/Spells: Break 'Fear' and similar auras on damage sharing of SPELL_AURA_SPLIT_DAMAGE_PCT
2014-05-29 21:21:39 +02:00
jackpoz 65917f52ea CoreCore/NetworkIO: Fix disconnect when canceling character creation
Remove the filter on CMSG_CHAR_ENUM added in 59b4c34924 since the same opcode is already throttled in the new improved system. DoS attacks using this opcode are still mitigated with same effect of before.
Fixes #10915
2014-05-29 21:11:41 +02:00
jackpoz b92e1046be Merge pull request #12007 from Trisjdc/spell_pushback
Core/Spells: Define and implement SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE
2014-05-29 19:54:39 +02:00
jackpoz fabceddacb Merge pull request #12160 from Trisjdc/petai
Core/PetAI: Pin should not be interrupted if the victim has a breakable aura
2014-05-29 19:45:48 +02:00
jackpoz 1b47f3270e Core/NetworkIO: Adjust more packet throttling values
Adjust more packet throttling values and add Player name to log to help investigate false positives.
2014-05-29 19:43:09 +02:00
jackpoz f312b86941 Core/NetworkIO: Adjust more packet throttling values 2014-05-27 21:19:19 +02:00
jackpoz b5b64a2cdd Core/NetworkIO: Adjust more packet throttling values 2014-05-26 20:13:04 +02:00
jackpoz c06dc7d37a Core/NetworkIO: Adjust more packet throttling values
Adjust some more packet throttling values.
Revert b35f831f2b since it's no longer needed.
Modify the AntiDoS log to specify in a more readable way which opcode triggered the system and how many packets have been received.
2014-05-25 20:14:59 +02:00
jackpoz b4327bfc69 Core/Misc: Fix no-pch build 2014-05-25 15:48:06 +02:00
jackpoz 2f0f8f8018 Core/NetworkIO: Adjust packet throttling values
Adjust packet throttling values to avoid false positive. In case you are experiencing random kicks change the PacketSpoof.Policy setting in worldserver configs and report which packets are triggering the anti-dos system.
2014-05-25 15:26:49 +02:00
jackpoz 5e66253de2 Core/Misc: Throw an exception if client sends invalid float/double data
Throw a ByteBufferException if client sends 1.#INF0000, 1.#QNAN000, 1.#IND0000 or other invalid float/double values.
Handle this invalid values in StaticMapTree::isInLineOfSight() to avoid triggering an assert.
Fixes #12126
2014-05-25 15:18:55 +02:00
jackpoz 01b33a6772 Merge pull request #12084 from Trisjdc/pet_combat_2
Core/Spells: Players with active pets count as if they were players in combat against spells with SPELL_ATTR1_CANT_TARGET_IN_COMBAT
2014-05-25 11:25:04 +02:00
jackpoz c4497e26f3 Merge pull request #12119 from Trisjdc/sniper_training
Core/Spells: Sniper Training should refresh every 6 seconds if all conditions are met
2014-05-25 00:35:35 +02:00
jackpoz 1f78ff541a Merge pull request #12120 from Trisjdc/aura_exploit
Core/Auras: Solve exploit involving SPELL_AURA_MOD_DAMAGE_DONE and weapon swapping
2014-05-25 00:32:37 +02:00
jackpoz a4ba54fbdb Core/NetworkIO: Improve packet spam solution
Implement an improved packet Anti-DoS by counting how many times the same opcode has been sent in the last second and applying the policy specified in the configs if the amount of packets exceeds a reasonable amount.
Credits to the original author who decided to share this with TrinityCore team.
2014-05-24 22:34:06 +02:00
jackpoz f091713086 Core/Misc: Fix typo
Fix typos about the word "Resurrect"
2014-05-24 18:25:53 +02:00
jackpoz 1083dbb993 Core/Misc: Remove Unit::Get* wrappers for ObjectAccessor::Get* 2014-05-20 21:21:33 +02:00
jackpoz d36ecbf4a3 Merge pull request #12076 from Trisjdc/even_more_sai
Core/SAI: Clear UNIT_STATE_EVADE immediately if we're about to follow a target on EnterEvadeMode
2014-05-19 22:00:48 +02:00
jackpoz 0166d9bf89 Merge pull request #12083 from Trisjdc/pet_combat
Core/PetAI: Pet's owner should NOT enter combat when the pet attacks/enters combat
2014-05-19 21:44:15 +02:00
jackpoz 35d5e63258 Merge pull request #12018 from Foereaper/master
Core/Misc: Fixed SendAddonMessage issue.
2014-05-19 21:33:08 +02:00
jackpoz 7228bd3664 Revert "Core/Logging: Use logger cache for speed up logger filter search"
This reverts commit 39331ea7b9.
This is required to fix a race condition introduced with the logger cache. Adding a locking mechanism might make worthless the speed gain added by the cache itself, push a proper thread-safe implementation if it's worth it.

Helgrind log:
Possible data race during write of size 8 at 0x736F428 by thread #1
Locks held: none
   at 0x11872DF: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_bucket_begin(unsigned long, std::__detail::_Hash_node<std::pair<std::string const, Logger const*>, true>*) (hashtable.h:1196)
   by 0x11865A1: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<std::string const, Logger const*>, true>*) (hashtable.h:1342)
   by 0x1185A48: std::__detail::_Map_base<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::operator[](std::string const&) (hashtable_policy.h:496)
   by 0x1184F3A: std::unordered_map<std::string, Logger const*, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, Logger const*> > >::operator[](std::string const&) (unordered_map.h:596)
   by 0x1184495: Log::GetLoggerByType(std::string const&) (Log.h:106)
   by 0x1184527: Log::ShouldLog(std::string const&, LogLevel) (Log.h:112)
   by 0x16E7121: World::LoadConfigSettings(bool) (World.cpp:909)
   by 0x16EB623: World::SetInitialWorldSettings() (World.cpp:1276)
   by 0x118F0EC: Master::Run() (Master.cpp:169)
   by 0x1196AFF: main (Main.cpp:142)

This conflicts with a previous read of size 8 by thread #3
Locks held: none
   at 0x1186EA6: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node(unsigned long, std::string const&, unsigned long) const (hashtable.h:1162)
   by 0x1186263: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_node(unsigned long, std::string const&, unsigned long) const (hashtable.h:604)
   by 0x11857B9: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find(std::string const&) (hashtable.h:1025)
   by 0x1184DE2: std::unordered_map<std::string, Logger const*, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, Logger const*> > >::find(std::string const&) (unordered_map.h:543)
   by 0x11842EF: Log::GetLoggerByType(std::string const&) (Log.h:84)
   by 0x1184527: Log::ShouldLog(std::string const&, LogLevel) (Log.h:112)
   by 0x189AACA: MySQLConnection::Execute(char const*) (MySQLConnection.cpp:175)
   by 0x18A3225: BasicStatementTask::Execute() (AdhocStatement.cpp:56)

Address 0x736F428 is 120 bytes inside a block of size 184 alloc'd
   at 0x4C2AE3A: operator new(unsigned long, std::nothrow_t const&) (vg_replace_malloc.c:350)
   by 0x1185046: ACE_Singleton<Log, ACE_Thread_Mutex>::instance() (Singleton.cpp:91)
   by 0x11968E2: main (Main.cpp:135)
2014-05-18 16:53:29 +02:00
jackpoz 0904858624 Revert "Core/Logging: store loggers in cache correctly"
This reverts commit c6a4d5a1de.
2014-05-18 16:04:59 +02:00
jackpoz a83c315771 Core/Calendar: Fix warning
Fix warning added b6048f89f7 about signed/unsigned comparison mismatch
2014-05-18 14:41:11 +02:00
jackpoz 5e86dea0b0 Shared/Packets: Handle crash by throwing an exception instead
Throw a ByteBufferException when trying to access the first element of an empty ByteBuffer class
2014-05-18 00:51:40 +02:00
jackpoz c200d2c8cc Core/Warden: Fix crash
Fix crash with empty CMSG_WARDEN_DATA packets
2014-05-18 00:29:00 +02:00
jackpoz 03f16d2e90 Shared/Database: Increase Database Worker Pool queue size
Increase DatabaseWorkerPool queue size from the default 16KB to 8MB to avoid blocking the caller thread when queuing an async statement/transaction.
2014-05-17 23:48:32 +02:00
jackpoz b6048f89f7 Core/Calendar: Align max amount of Players to be invited to Client limits
Limit the max amount of Players to be invited to a Calendar event to 100, same limit as the one in the Client
2014-05-17 21:22:28 +02:00
jackpoz 9d760098a5 Core/Misc: Fix crash in ticket creation
Fix a crash happening with malicious CMSG_GMTICKET_CREATE packets.
2014-05-14 22:07:20 +02:00
jackpoz 32386be8e7 Merge pull request #12021 from Trisjdc/spell_target_dest
Core/Spells: Replace MovePosition by MovePositionToFirstCollision in spell dest target handling.
2014-05-13 21:02:07 +02:00
jackpoz d32180df17 Merge pull request #12058 from Trisjdc/sunwell
Scripts/SWP: Sathrovarr will no longer cause player teleports on grid load
2014-05-13 20:48:23 +02:00
jackpoz db2593f41d Core/Arena: Fix exploit in arena team
Fix exploit that allowed anyone to add a target Player to any arena team.
2014-05-12 22:40:55 +02:00
jackpoz b17e3246fe Core/Misc: Fix static analysis issues
Fix uninitialized values spotted by coverity.
Remove unused "dynamic analysis" code, use Valgrind or another dynamic analysis tool instead if needed.
2014-05-12 21:18:59 +02:00
jackpoz 2878b0d105 Core/Misc: Fix enchants broken in 3aca9e64b3
Compare cast item entry instead of checking cast item spells to fix the exploit mentioned in 3aca9e64b3 without breaking any functionality.
2014-05-05 20:05:33 +02:00
jackpoz 1c0c163485 Core/Misc: Fix warning 2014-05-04 14:03:42 +02:00
jackpoz 3aca9e64b3 Core/Misc: Fix exploit
Fix exploit that allowed to learn spells from recipes without consuming them.
2014-05-04 13:41:07 +02:00
jackpoz 720c3cbbd0 Core/Misc: Fix exploit
Fix exploit that allowed to duplicate stackable splitable items. If the item that cast the spell can't be found anymore, the spell is cancelled.

Fixes https://github.com/TrinityCore/TrinityCore/issues/11977
2014-05-03 21:22:12 +02:00
jackpoz b7a105bcc8 Merge pull request #11984 from Unholychick/patch-1
Core/Spells: Correct a mistake in HoT aura procs
2014-05-03 18:52:03 +02:00
jackpoz 3e0d2e4944 Core/Misc: Fix static analysis issues 2014-05-02 23:21:37 +02:00
jackpoz 1be3a2bdf5 Merge pull request #11981 from Unholychick/patch-1
Core/Spells: Fix hots proccing wrong auras
2014-05-02 16:32:56 +02:00
jackpoz f9a6aa5479 Merge pull request #11950 from Dehravor/override-final-delete
Core/Misc: Remove obsolete C++11 backward compatibility macros
2014-04-29 19:39:40 +02:00
jackpoz d0cc723d2d Scripts/Commands: Fix crash in ".wp modify wpadd"
Remove the old unsupported "wpadd" subcommand of ".wp modify" .
Closes #11955
2014-04-28 20:50:47 +02:00
jackpoz 26f2a7af2f Merge pull request #11957 from Unholychick/patch-1
Fix percentage HOTs proccing everything
2014-04-27 22:52:05 +02:00
jackpoz f27057bf24 Core/Misc: Fix build warnings 2014-04-25 21:46:43 +02:00
jackpoz 2585e799f9 Core/Misc: Change how Position struct is retrieved
Update Position::GetPosition() and similar methods signatures to reflect 2a4c9bcaf9 changes by return a Position object instead of accepting a Position parameter by reference.
2014-04-25 21:19:30 +02:00
jackpoz eb711fd9e9 Core/LFG: Fix crash
Fix crash added in ab1d0512ea by adding an additional NULL check.
Fixes #11941
2014-04-25 11:35:32 +02:00
jackpoz ab1d0512ea Core/LFG: Fix LFG GS requirement not updated until relog
Fix Player receiving "You do not meet the requirements for the chosen dungeons" for too low Gear Score level even after equipping items with high enough Gear Score.
2014-04-25 00:13:48 +02:00
jackpoz 9d1afbba57 Core/Player: Check Player race and class on login
Don't allow login for Players with bad race/class combination to avoid any further crash later.
2014-04-23 21:37:27 +02:00
jackpoz 6b42f99540 Core/AuctionHouse: Fix AuctionHouse exploit
Fix an exploit in Auction House using either CheatEngine or WPE that allowed to sell more items than the Player had in inventory or to crash worldserver.
Fixes #11831
Fixes #11928
2014-04-23 20:01:20 +02:00
jackpoz e830225b21 Core/Misc: Fix change faction on dead Night Elves keeping the speed buff
Fix change faction on dead Night Elves causing the new player keeping the 175% wisp speed buff.
Players will be resurrected automatically on change faction.
Closes #255
2014-04-20 15:02:19 +02:00
jackpoz fb6365ac68 Core/Misc: Check GetVictim() for NULL before dereferencing it
Add additional NULL checks all around the code before dereferencing GetVictim() result.
Keep in mind UpdateVictim() result has nothing to do with GetVictim() result and the caller shouldn't assume anything about GetVictim() based on UpdateVictim().
2014-04-20 00:38:25 +02:00
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 980c175df1 Merge pull request #11860 from msoky/patch-4
[4.3.4] Revert CMakeLists.txt mistake for mmaps
2014-04-08 20:01:26 +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