Commit Graph

15593 Commits

Author SHA1 Message Date
Sebastian Valle
88df2ca6d4 Core/Build: Updated the header files to fix the build. 2013-09-03 17:43:11 -05:00
Sebastian Valle
07d793b94b Core/Misc: Fixed some more issues found by static code analysis tools. 2013-09-03 17:31:02 -05:00
Subv
3ec941bacf Merge pull request #10697 from Chaplain/authserver
Auth/Misc: Code cleanup.
2013-09-03 14:59:56 -07:00
Sebastian Valle
2cfcf9d3ef Scripts/HallsOfReflection: Fixed a typo detected by static analysis tool. 2013-09-03 16:58:57 -05:00
Shauren
b3d5784d1f Merge pull request #10713 from jackpoz/movement_fix
Core/Movement: Fix uninitialized MovementInfo fields
2013-09-03 14:10:40 -07:00
jackpoz
0450b74e96 Core/Movement: Fix uninitialized MovementInfo fields
Fix uninitialized fallTime and splineElevation fields of MovementInfo.

Valgrind log:
 Conditional jump or move depends on uninitialised value(s)
   at 0x5FBEB50: deflate (in /lib/x86_64-linux-gnu/libz.so.1.2.7)
   by 0x1269883: UpdateData::Compress(void*, unsigned int*, void*, int) (UpdateData.cpp:85)
   by 0x1269BB6: UpdateData::BuildPacket(WorldPacket*) (UpdateData.cpp:133)
   by 0x130E9B3: Trinity::VisibleNotifier::SendToSelf() (GridNotifiers.cpp:68)
   by 0x117A89D: Player::UpdateVisibilityForPlayer() (Player.cpp:22344)
   by 0x117B334: Player::SendInitialPacketsAfterAddToMap() (Player.cpp:22567)
   by 0x15A48BC: WorldSession::HandlePlayerLogin(LoginQueryHolder*) (CharacterHandler.cpp:937)
   by 0x141D04B: WorldSession::ProcessQueryCallbacks() (WorldSession.cpp:1106)
   by 0x141994D: WorldSession::Update(unsigned int, PacketFilter&) (WorldSession.cpp:391)
   by 0x14E289C: World::UpdateSessions(unsigned int) (World.cpp:2629)
   by 0x14E0613: World::Update(unsigned int) (World.cpp:1986)
   by 0x100B37F: WorldRunnable::run() (WorldRunnable.cpp:60)
 Uninitialised value was created by a heap allocation
   at 0x4C286E7: operator new(unsigned long) (vg_replace_malloc.c:287)
   by 0x159E64F: void LoadHelper<Creature>(std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > const&, CoordPair<512u>&, GridRefManager<Creature>&, unsigned int&, Map*) (ObjectGridLoader.cpp:94)
   by 0x159DECF: ObjectGridLoader::Visit(GridRefManager<Creature>&) (ObjectGridLoader.cpp:150)
   by 0x159F092: void VisitorHelper<ObjectGridLoader, Creature>(ObjectGridLoader&, ContainerMapList<Creature>&) (TypeContainerVisitor.h:64)
   by 0x159EFF5: void VisitorHelper<ObjectGridLoader, Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > >(ObjectGridLoader&, ContainerMapList<TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >&) (TypeContainerVisitor.h:70)
2013-09-03 23:05:02 +02:00
Sebastian Valle
24f8b2b994 Core/Misc: Fixed some more issues found by code analysis tools. 2013-09-03 15:09:37 -05:00
Sebastian Valle
5b95301de5 Core/Misc: Solved some issues found by static code analysis. 2013-09-03 13:38:50 -05:00
MitchesD
5e03230f3d Scripts/HallsOfStone: Sjonnir, some improvements
- rewritten to BossAI
- added spawn ordered by percent, according to official data

Closes #10702

Signed-off-by: joschiwald <joschiwald@online.de>
2013-09-02 18:55:52 +02:00
Chaplain
aa8bfeec4f Auth/Misc: Code cleanup.
*Random performance optimizations
2013-09-02 19:40:31 +03:00
joschiwald
3722fcb850 Scripts/HoL/HoS: changed some bosses to optional, doors are always open 2013-09-02 18:12:33 +02:00
Vincent-Michael
ab85a9507e Core/SAI: Added SMART_ACTION_CALL_KILLEDMONSTER log for has already spell kill credit 2013-09-02 17:48:55 +02:00
Nay
9b92bc9409 Core: Fix compile with PCH enabled and warnings
Few corrections to worldserver.conf
2013-09-02 16:18:55 +01:00
joschiwald
579f969d6a Scripts/HallsOfStone: reworked InstanceScript 2013-09-02 16:31:35 +02:00
Nay
28f9317698 Core/RBAC: Move cast and characters commands to RBAC (using individual permissions) 2013-09-02 13:25:07 +01:00
Spp
f3487aa0e1 Compile Fix (and edit of last 2 sqls to add the missing permissions) 2013-09-02 13:19:59 +02:00
Spp
f68471f142 Core/RBAC: Move message commands to RBAC (using individual permissions) 2013-09-02 13:01:50 +02:00
Spp
2d508387e5 Core/Commands: Move lookup commands to RBAC (using individual permissions) 2013-09-02 12:54:51 +02:00
Spp
eb73684952 Core/RBAC: Move list commands to RBAC (using individual permissions) 2013-09-02 12:25:32 +02:00
Spp
4219f45c85 Core/RBAC: Move lfg commands to RBAC (using individual permissions) 2013-09-02 12:17:46 +02:00
Spp
c0dfdeab1c Core/RBAC: Move learn commands to RBAC (using individual permissions) 2013-09-02 12:12:20 +02:00
Spp
2625e78f80 Core/RBAC: Move instance commands to RBAC (using individual permissions) 2013-09-02 11:58:14 +02:00
Spp
08ef6bd9f8 Core/RBAC: Move honor commands to RBAC (using individual permissions) 2013-09-02 11:53:22 +02:00
Spp
11233dbd73 Core/RBAC: Move guild commands to RBAC (using individual permissions) 2013-09-02 11:45:36 +02:00
Spp
015eee068b Core/RBAC: Move gobject commands to RBAC (using individual permissions) 2013-09-02 11:38:41 +02:00
Spp
29c57c3447 Core/RBAC: Move go commands to RBAC (using individual permissions) 2013-09-02 11:33:45 +02:00
Spp
1bccf67c09 Core/RBAC: Move gm commands to RBAC (using individual permissions) 2013-09-02 11:24:09 +02:00
Spp
fced8a896e Core/RBAC: Move event commands to RBAC (using individual permissions) 2013-09-02 11:20:05 +02:00
Spp
225691e0ae Core/RBAC: Move disable commands to RBAC (using individual permissions) 2013-09-02 11:17:15 +02:00
Spp
3e45640135 Core/RBAC: Move deserter commands to RBAC (using individual permissions) 2013-09-02 10:01:34 +02:00
Spp
f53c61c93e Core/RBAC: Move debug commands to RBAC (using individual permissions) 2013-09-02 10:01:34 +02:00
Spp
33d9da5060 Core/RBAC: Move cheat commands to RBAC (using individual permissions) 2013-09-02 10:01:34 +02:00
Aokromes
59667ee606 Core/Spells: move debug log into debug mode 2013-09-02 09:41:46 +02:00
Nay
69a0800cb7 Merge pull request #10696 from jackpoz/socket_race_condition
Core/Socket: Fix race condition in WorldSocket
2013-09-01 15:52:57 -07:00
Nay
68b447b24c Merge pull request #10563 from Ascathor/master
Core/Account: Make account password change security variable and various changes
2013-09-01 15:52:13 -07:00
Shauren
f388ceb8bd Merge pull request #10687 from jackpoz/farsight_fix
Core/Spell: Fix farsight log error "Player requests non-existing seer"
2013-09-01 13:52:05 -07:00
jackpoz
1417f62453 Core/Spell: Fix farsight log error "Player requests non-existing seer"
Partially revert 167ca565d0 which wrongly used TYPEMASK_UNIT to denote Creatures and Players, so when a Player sent farsight opcode with another Player as target HandleFarSightOpcode() couldn't find the right Unit filtering by typemask TYPEMASK_SEER.
2013-09-01 22:35:48 +02:00
Shauren
e8a566b3b1 Core/Objects: Removed obsolete code 2013-09-01 22:30:07 +02:00
jackpoz
f23b5fb96d Core/Socket: Fix race condition in WorldSocket
ReactorRunnable::svc() checks the status of WorldSockets while WorldRunnable::run() updates them, causing a race condition.

Helgrind log:
Possible data race during write of size 8 at 0x49961810 by thread #9
Locks held: 1, at address 0x4367A620
   at 0x51781F7: ACE_Message_Block::copy(char const*, unsigned long) (Message_Block.inl:372)
   by 0x15D048F: WorldSocket::SendPacket(WorldPacket const&) (WorldSocket.cpp:180)
   by 0x141C45E: WorldSession::SendPacket(WorldPacket const*) (WorldSession.cpp:223)
   by 0x15C49C4: WorldSession::SendAuthResponse(unsigned char, bool, unsigned int) (AuthHandler.cpp:37)
   by 0x14DA71C: World::AddSession_(WorldSession*) (World.cpp:278)
   by 0x14E601E: World::UpdateSessions(unsigned int) (World.cpp:2617)
   by 0x14E3E67: World::Update(unsigned int) (World.cpp:1986)
   by 0x100EAFA: WorldRunnable::run() (WorldRunnable.cpp:60)
   by 0x163A626: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:186)
   by 0x518F555: ACE_OS_Thread_Adapter::invoke() (OS_Thread_Adapter.cpp:103)
   by 0x4C2B5AD: mythread_wrapper (hg_intercepts.c:219)
   by 0x61DAB4F: start_thread (pthread_create.c:304)

This conflicts with a previous read of size 8 by thread #14
Locks held: none
   at 0x1008414: ACE_Message_Block::length() const (Message_Block.inl:131)
   by 0x15D1207: WorldSocket::Update() (WorldSocket.cpp:448)
   by 0x1427CA3: ReactorRunnable::svc() (WorldSocketMgr.cpp:177)
   by 0x51CBB16: ACE_Task_Base::svc_run(void*) (Task.cpp:271)
   by 0x51CD3BC: ACE_Thread_Adapter::invoke_i() (Thread_Adapter.cpp:161)
   by 0x51CD4D4: ACE_Thread_Adapter::invoke() (Thread_Adapter.cpp:96)
   by 0x4C2B5AD: mythread_wrapper (hg_intercepts.c:219)
   by 0x61DAB4F: start_thread (pthread_create.c:304)

Address 0x49961810 is 16 bytes inside a block of size 80 alloc'd
   at 0x4C286BB: operator new(unsigned long, std::nothrow_t const&) (vg_replace_malloc.c:316)
   by 0x15D0818: WorldSocket::open(void*) (WorldSocket.cpp:237)
   by 0x1429560: ACE_Acceptor<WorldSocket, ACE_SOCK_Acceptor>::activate_svc_handler(WorldSocket*) (Acceptor.cpp:347)
   by 0x142916D: ACE_Acceptor<WorldSocket, ACE_SOCK_Acceptor>::handle_input(int) (Acceptor.cpp:429)
   by 0x515F48D: ACE_Dev_Poll_Reactor::dispatch_io_event(ACE_Dev_Poll_Reactor::Token_Guard&) (Dev_Poll_Reactor.inl:86)
   by 0x5161653: ACE_Dev_Poll_Reactor::handle_events(ACE_Time_Value*) (Dev_Poll_Reactor.cpp:1015)
   by 0x51ACCFC: ACE_Reactor::run_reactor_event_loop(ACE_Time_Value&, int (*)(ACE_Reactor*)) (Reactor.cpp:267)
   by 0x1427C57: ReactorRunnable::svc() (WorldSocketMgr.cpp:170)
   by 0x51CBB16: ACE_Task_Base::svc_run(void*) (Task.cpp:271)
   by 0x51CD3BC: ACE_Thread_Adapter::invoke_i() (Thread_Adapter.cpp:161)
   by 0x51CD4D4: ACE_Thread_Adapter::invoke() (Thread_Adapter.cpp:96)
   by 0x4C2B5AD: mythread_wrapper (hg_intercepts.c:219)
2013-09-01 21:32:34 +02:00
Ascathor
722a6c143a Core/Account: Make account password change security variable and various changes
Settings within worldserver.conf:

Three settings for secruity level:
0 - None - No change to current system
1 - Email - Always requires the email entered on registration for confirming.
2 - RBAC - Groups applied with the RBAC role always require the email entered on registration for confirming.

RBAC default to every group. Changed some logs to make it more clear what is going on at all.

Emails may now no longer exceed 64 chars. Current email is used as regmail.

On account creation, two emails are saved. Registration email and normal email. Normal email is relevant afterwards. Registration email can be changed by console ONLY.

Includes new commands and changes to existing ones:
.account fulfills several new functions:
* Still prints GM Level.
* If account has permission, it displays the current email. This is not defaulted to any group.
* Security level is displayed. Also displays if user has RBAC perm if RBAC security mode is selected
.account email allows user to change email with sufficient confirmation
.account set sec email allows higher sec with higher sec than account to change the normal email. Registrationemail remains untouched here.
.account set sec regmail allows console to change registration email.
.pinfo now displays the registration and normal mail.

Also fixes .learn all crafts.
Closes #10558
2013-09-01 21:21:16 +02:00
Shauren
79d1b7f543 Scripts/Misc: Removed unused fields and fixed a warning about uninitialized value 2013-09-01 20:33:52 +02:00
Nay
cd11366690 Merge pull request #10694 from jackpoz/loopcounter_race_condition
Core/Thread: Fix race condition in FreezeDetectorRunnable
2013-09-01 10:05:39 -07:00
Nay
582686090d Merge pull request #10685 from Discover-/SmartAI-Target-Casting
Core/SmartAI: Add a spellid to SMART_EVENT_TARGET_CASTING. If left on 0,...
2013-09-01 10:03:45 -07:00
Nay
c4bd91ceb9 Merge pull request #10690 from Discover-/SmartAI-Set-Home-Pos
Core/SAI: Allow using SMART_ACTION_SET_HOME_POS with multiple target typ...
2013-09-01 10:03:09 -07:00
Nay
b324646005 Merge pull request #10689 from Discover-/SmartAI-Killed-Monster-Credit
Core/SAI: Also use loot recipient for SMART_ACTION_CALL_KILLEDMONSTER wh...
2013-09-01 10:02:43 -07:00
Nay
a762df0aba Core/SAI: Fix processing linked events when return is used in ProcessAction
Thanks Discover-

Closes #10688
2013-09-01 18:01:59 +01:00
jackpoz
e1e1067d17 Core/Thread: Fix race condition in FreezeDetectorRunnable
Fix race condition by replacing a static volatile uint32 with proper atomic thread-safe ACE_Atomic_Op<ACE_Thread_Mutex, uint32>, incremented in WorldRunnable::run() at each world loop and read in FreezeDetectorRunnable::run().

Helgrind log:
 Possible data race during read of size 4 at 0x2400D54 by thread #12
 Locks held: none
    at 0x100FEA6: FreezeDetectorRunnable::run() (Master.cpp:106)
    by 0x1637892: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:186)
    by 0x518F555: ACE_OS_Thread_Adapter::invoke() (OS_Thread_Adapter.cpp:103)
    by 0x4C2B5AD: mythread_wrapper (hg_intercepts.c:219)
    by 0x61DAB4F: start_thread (pthread_create.c:304)
    by 0x6C69A7C: clone (clone.S:112)

 This conflicts with a previous write of size 4 by thread #9
 Locks held: none
    at 0x100C23E: WorldRunnable::run() (WorldRunnable.cpp:55)
    by 0x1637892: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:186)
    by 0x518F555: ACE_OS_Thread_Adapter::invoke() (OS_Thread_Adapter.cpp:103)
    by 0x4C2B5AD: mythread_wrapper (hg_intercepts.c:219)
    by 0x61DAB4F: start_thread (pthread_create.c:304)
    by 0x6C69A7C: clone (clone.S:112)
2013-09-01 18:49:49 +02:00
Shauren
6b60877e3e Core/NetworkIO: Fixed memory leak 2013-09-01 17:48:47 +02:00
Discover-
8ba8190773 Core/SAI: Allow using SMART_ACTION_SET_HOME_POS with multiple target types 2013-09-01 13:56:35 +02:00
Discover-
7d7fc7b662 Core/SAI: Also use loot recipient for SMART_ACTION_CALL_KILLEDMONSTER when target is SMART_TARGET_SELF (used in four cases in a clean TDB which will be fixed by this) 2013-09-01 13:44:08 +02:00