Skip to content

Instantly share code, notes, and snippets.

@jackpoz
Created May 11, 2020 20:00
Show Gist options
  • Save jackpoz/12792452796257eab486b34b05da2cc0 to your computer and use it in GitHub Desktop.
Save jackpoz/12792452796257eab486b34b05da2cc0 to your computer and use it in GitHub Desktop.
ASan
==979109==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f633cfdcf6c at pc 0x00000319a495 bp 0x7f633dfdf4d0 sp 0x7f633dfdf4c8
READ of size 4 at 0x7f633cfdcf6c thread T7
#0 0x319a494 in Map::ScriptsProcess() /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:393:30
#1 0x31a4cbc in Map::ScriptCommandStart(ScriptInfo const&, unsigned int, Object*, Object*) /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:96:9
#2 0x37c4bd1 in Spell::EffectActivateObject(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:3744:30
#3 0x371b887 in Spell::HandleEffects(Unit*, Item*, GameObject*, unsigned int, SpellEffectHandleMode) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:5036:9
#4 0x371ae38 in Spell::GOTargetInfo::DoTargetSpellHit(Spell*, unsigned char) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:2602:12
#5 0x37598ae in void Spell::DoProcessTargetContainer<std::vector<Spell::GOTargetInfo, std::allocator<Spell::GOTargetInfo> > >(std::vector<Spell::GOTargetInfo, std::allocator<Spell::GOTargetInfo> >&) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3473:24
#6 0x3735f07 in Spell::handle_immediate() /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3520:5
#7 0x372e298 in Spell::_cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3409:9
#8 0x371e102 in Spell::cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3190:5
#9 0x371e102 in Spell::prepare(SpellCastTargets const&, AuraEffect const*) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3087:9
#10 0x23d3d15 in WorldObject::CastSpell(SpellCastTargets const&, unsigned int, CastSpellExtraArgs const&) /home/trinity/trinity/sources/src/server/game/Entities/Object/Object.cpp:2800:19
#11 0x37ba271 in Spell::EffectTriggerSpell(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:830:15
#12 0x371b887 in Spell::HandleEffects(Unit*, Item*, GameObject*, unsigned int, SpellEffectHandleMode) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:5036:9
#13 0x3731dcc in Spell::HandleLaunchPhase() /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:7486:9
#14 0x372e17b in Spell::_cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3381:5
#15 0x373c084 in Spell::cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3190:5
#16 0x373c084 in Spell::update(unsigned int) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3744:17
#17 0x3753729 in SpellEvent::Execute(unsigned long, unsigned int) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:7372:18
#18 0x3fe5a76 in EventProcessor::Update(unsigned int) /home/trinity/trinity/sources/src/common/Utilities/EventProcessor.cpp:55:24
#19 0x27f7ecb in Unit::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Entities/Unit/Unit.cpp:427:14
#20 0x229fce4 in Creature::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Entities/Creature/Creature.cpp:746:19
#21 0x2d69298 in void Trinity::ObjectUpdater::Visit<Creature>(GridRefManager<Creature>&) /home/trinity/trinity/sources/src/server/game/Grids/Notifiers/GridNotifiers.cpp:405:32
#22 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, Creature>(Trinity::ObjectUpdater&, ContainerMapList<Creature>&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:44:7
#23 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > >(Trinity::ObjectUpdater&, ContainerMapList<TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:50:5
#24 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >(Trinity::ObjectUpdater&, ContainerMapList<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:51:5
#25 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >(Trinity::ObjectUpdater&, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:57:5
#26 0x3159555 in TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >::Visit(TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:91:13
#27 0x3159555 in void Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::Visit<Trinity::ObjectUpdater>(TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Grid.h:90:21
#28 0x3159555 in void NGrid<8u, Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::VisitGrid<Trinity::ObjectUpdater, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >(unsigned int, unsigned int, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/NGrid.h:151:31
#29 0x30e9ed1 in void Map::Visit<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >(Cell const&, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Maps/Map.h:982:25
#30 0x30e9ed1 in Map::VisitNearbyCellsOf(WorldObject*, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:734:13
#31 0x30eae60 in Map::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:801:9
#32 0x31228b4 in InstanceMap::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:3861:10
#33 0x31c5195 in MapUpdateRequest::call() /home/trinity/trinity/sources/src/server/game/Maps/MapUpdater.cpp:41:19
#34 0x31c3df2 in MapUpdater::WorkerThread() /home/trinity/trinity/sources/src/server/game/Maps/MapUpdater.cpp:112:18
#35 0x7f635b1d4cb3 (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6cb3)
#36 0x7f635b306608 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x9608)
#37 0x7f635aeb1102 in clone (/lib/x86_64-linux-gnu/libc.so.6+0x122102)
Address 0x7f633cfdcf6c is located in stack of thread T7 at offset 108 in frame
#0 0x37c49df in Spell::EffectActivateObject(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:3732
This frame has 2 object(s):
[32, 64) 'agg.tmp.i'
[96, 140) 'activateCommand' (line 3739) <== Memory access at offset 108 is inside this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
Thread T7 created by T0 here:
#0 0x5d915a in pthread_create (/home/trinity/trinity/bin/worldserver+0x5d915a)
#1 0x7f635b1d4f78 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6f78)
#2 0x3b2b359 in World::SetInitialWorldSettings() /home/trinity/trinity/sources/src/server/game/World/World.cpp:2123:14
#3 0x6234ed in main /home/trinity/trinity/sources/src/server/worldserver/Main.cpp:253:13
#4 0x7f635adb60b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
SUMMARY: AddressSanitizer: stack-use-after-return /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:393:30 in Map::ScriptsProcess()
Shadow bytes around the buggy address:
0x0fece79f3990: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39a0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39b0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39c0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39d0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
=>0x0fece79f39e0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5[f5]f5 f5
0x0fece79f39f0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a00: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a10: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a20: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a30: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
=================================================================
==979109==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f633cfdcf6c at pc 0x000002988a72 bp 0x7f633dfdf330 sp 0x7f633dfdf328
READ of size 4 at 0x7f633cfdcf6c thread T7
#0 0x2988a71 in ScriptInfo::GetDebugInfo[abi:cxx11]() const /home/trinity/trinity/sources/src/server/game/Globals/ObjectMgr.cpp:136:65
#1 0x31acd00 in Map::_GetScriptUnit(Object*, bool, ScriptInfo const*) const /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:196:9
#2 0x31939f9 in Map::ScriptsProcess() /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:667:34
#3 0x31a4cbc in Map::ScriptCommandStart(ScriptInfo const&, unsigned int, Object*, Object*) /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:96:9
#4 0x37c4bd1 in Spell::EffectActivateObject(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:3744:30
#5 0x371b887 in Spell::HandleEffects(Unit*, Item*, GameObject*, unsigned int, SpellEffectHandleMode) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:5036:9
#6 0x371ae38 in Spell::GOTargetInfo::DoTargetSpellHit(Spell*, unsigned char) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:2602:12
#7 0x37598ae in void Spell::DoProcessTargetContainer<std::vector<Spell::GOTargetInfo, std::allocator<Spell::GOTargetInfo> > >(std::vector<Spell::GOTargetInfo, std::allocator<Spell::GOTargetInfo> >&) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3473:24
#8 0x3735f07 in Spell::handle_immediate() /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3520:5
#9 0x372e298 in Spell::_cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3409:9
#10 0x371e102 in Spell::cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3190:5
#11 0x371e102 in Spell::prepare(SpellCastTargets const&, AuraEffect const*) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3087:9
#12 0x23d3d15 in WorldObject::CastSpell(SpellCastTargets const&, unsigned int, CastSpellExtraArgs const&) /home/trinity/trinity/sources/src/server/game/Entities/Object/Object.cpp:2800:19
#13 0x37ba271 in Spell::EffectTriggerSpell(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:830:15
#14 0x371b887 in Spell::HandleEffects(Unit*, Item*, GameObject*, unsigned int, SpellEffectHandleMode) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:5036:9
#15 0x3731dcc in Spell::HandleLaunchPhase() /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:7486:9
#16 0x372e17b in Spell::_cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3381:5
#17 0x373c084 in Spell::cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3190:5
#18 0x373c084 in Spell::update(unsigned int) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3744:17
#19 0x3753729 in SpellEvent::Execute(unsigned long, unsigned int) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:7372:18
#20 0x3fe5a76 in EventProcessor::Update(unsigned int) /home/trinity/trinity/sources/src/common/Utilities/EventProcessor.cpp:55:24
#21 0x27f7ecb in Unit::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Entities/Unit/Unit.cpp:427:14
#22 0x229fce4 in Creature::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Entities/Creature/Creature.cpp:746:19
#23 0x2d69298 in void Trinity::ObjectUpdater::Visit<Creature>(GridRefManager<Creature>&) /home/trinity/trinity/sources/src/server/game/Grids/Notifiers/GridNotifiers.cpp:405:32
#24 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, Creature>(Trinity::ObjectUpdater&, ContainerMapList<Creature>&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:44:7
#25 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > >(Trinity::ObjectUpdater&, ContainerMapList<TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:50:5
#26 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >(Trinity::ObjectUpdater&, ContainerMapList<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:51:5
#27 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >(Trinity::ObjectUpdater&, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:57:5
#28 0x3159555 in TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >::Visit(TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:91:13
#29 0x3159555 in void Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::Visit<Trinity::ObjectUpdater>(TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Grid.h:90:21
#30 0x3159555 in void NGrid<8u, Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::VisitGrid<Trinity::ObjectUpdater, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >(unsigned int, unsigned int, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/NGrid.h:151:31
#31 0x30e9ed1 in void Map::Visit<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >(Cell const&, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Maps/Map.h:982:25
#32 0x30e9ed1 in Map::VisitNearbyCellsOf(WorldObject*, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:734:13
#33 0x30eae60 in Map::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:801:9
#34 0x31228b4 in InstanceMap::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:3861:10
#35 0x31c5195 in MapUpdateRequest::call() /home/trinity/trinity/sources/src/server/game/Maps/MapUpdater.cpp:41:19
#36 0x31c3df2 in MapUpdater::WorkerThread() /home/trinity/trinity/sources/src/server/game/Maps/MapUpdater.cpp:112:18
#37 0x7f635b1d4cb3 (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6cb3)
#38 0x7f635b306608 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x9608)
#39 0x7f635aeb1102 in clone (/lib/x86_64-linux-gnu/libc.so.6+0x122102)
Address 0x7f633cfdcf6c is located in stack of thread T7 at offset 108 in frame
#0 0x37c49df in Spell::EffectActivateObject(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:3732
This frame has 2 object(s):
[32, 64) 'agg.tmp.i'
[96, 140) 'activateCommand' (line 3739) <== Memory access at offset 108 is inside this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-use-after-return /home/trinity/trinity/sources/src/server/game/Globals/ObjectMgr.cpp:136:65 in ScriptInfo::GetDebugInfo[abi:cxx11]() const
Shadow bytes around the buggy address:
0x0fece79f3990: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39a0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39b0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39c0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39d0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
=>0x0fece79f39e0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5[f5]f5 f5
0x0fece79f39f0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a00: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a10: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a20: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a30: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
=================================================================
==979109==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f633cfdcf60 at pc 0x000002988a8c bp 0x7f633dfdf330 sp 0x7f633dfdf328
READ of size 4 at 0x7f633cfdcf60 thread T7
#0 0x2988a8b in ScriptInfo::GetDebugInfo[abi:cxx11]() const /home/trinity/trinity/sources/src/server/game/Globals/ObjectMgr.cpp:136:109
#1 0x31acd00 in Map::_GetScriptUnit(Object*, bool, ScriptInfo const*) const /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:196:9
#2 0x31939f9 in Map::ScriptsProcess() /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:667:34
#3 0x31a4cbc in Map::ScriptCommandStart(ScriptInfo const&, unsigned int, Object*, Object*) /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:96:9
#4 0x37c4bd1 in Spell::EffectActivateObject(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:3744:30
#5 0x371b887 in Spell::HandleEffects(Unit*, Item*, GameObject*, unsigned int, SpellEffectHandleMode) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:5036:9
#6 0x371ae38 in Spell::GOTargetInfo::DoTargetSpellHit(Spell*, unsigned char) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:2602:12
#7 0x37598ae in void Spell::DoProcessTargetContainer<std::vector<Spell::GOTargetInfo, std::allocator<Spell::GOTargetInfo> > >(std::vector<Spell::GOTargetInfo, std::allocator<Spell::GOTargetInfo> >&) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3473:24
#8 0x3735f07 in Spell::handle_immediate() /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3520:5
#9 0x372e298 in Spell::_cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3409:9
#10 0x371e102 in Spell::cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3190:5
#11 0x371e102 in Spell::prepare(SpellCastTargets const&, AuraEffect const*) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3087:9
#12 0x23d3d15 in WorldObject::CastSpell(SpellCastTargets const&, unsigned int, CastSpellExtraArgs const&) /home/trinity/trinity/sources/src/server/game/Entities/Object/Object.cpp:2800:19
#13 0x37ba271 in Spell::EffectTriggerSpell(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:830:15
#14 0x371b887 in Spell::HandleEffects(Unit*, Item*, GameObject*, unsigned int, SpellEffectHandleMode) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:5036:9
#15 0x3731dcc in Spell::HandleLaunchPhase() /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:7486:9
#16 0x372e17b in Spell::_cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3381:5
#17 0x373c084 in Spell::cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3190:5
#18 0x373c084 in Spell::update(unsigned int) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3744:17
#19 0x3753729 in SpellEvent::Execute(unsigned long, unsigned int) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:7372:18
#20 0x3fe5a76 in EventProcessor::Update(unsigned int) /home/trinity/trinity/sources/src/common/Utilities/EventProcessor.cpp:55:24
#21 0x27f7ecb in Unit::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Entities/Unit/Unit.cpp:427:14
#22 0x229fce4 in Creature::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Entities/Creature/Creature.cpp:746:19
#23 0x2d69298 in void Trinity::ObjectUpdater::Visit<Creature>(GridRefManager<Creature>&) /home/trinity/trinity/sources/src/server/game/Grids/Notifiers/GridNotifiers.cpp:405:32
#24 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, Creature>(Trinity::ObjectUpdater&, ContainerMapList<Creature>&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:44:7
#25 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > >(Trinity::ObjectUpdater&, ContainerMapList<TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:50:5
#26 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >(Trinity::ObjectUpdater&, ContainerMapList<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:51:5
#27 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >(Trinity::ObjectUpdater&, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:57:5
#28 0x3159555 in TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >::Visit(TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:91:13
#29 0x3159555 in void Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::Visit<Trinity::ObjectUpdater>(TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Grid.h:90:21
#30 0x3159555 in void NGrid<8u, Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::VisitGrid<Trinity::ObjectUpdater, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >(unsigned int, unsigned int, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/NGrid.h:151:31
#31 0x30e9ed1 in void Map::Visit<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >(Cell const&, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Maps/Map.h:982:25
#32 0x30e9ed1 in Map::VisitNearbyCellsOf(WorldObject*, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:734:13
#33 0x30eae60 in Map::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:801:9
#34 0x31228b4 in InstanceMap::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:3861:10
#35 0x31c5195 in MapUpdateRequest::call() /home/trinity/trinity/sources/src/server/game/Maps/MapUpdater.cpp:41:19
#36 0x31c3df2 in MapUpdater::WorkerThread() /home/trinity/trinity/sources/src/server/game/Maps/MapUpdater.cpp:112:18
#37 0x7f635b1d4cb3 (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6cb3)
#38 0x7f635b306608 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x9608)
#39 0x7f635aeb1102 in clone (/lib/x86_64-linux-gnu/libc.so.6+0x122102)
Address 0x7f633cfdcf60 is located in stack of thread T7 at offset 96 in frame
#0 0x37c49df in Spell::EffectActivateObject(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:3732
This frame has 2 object(s):
[32, 64) 'agg.tmp.i'
[96, 140) 'activateCommand' (line 3739) <== Memory access at offset 96 is inside this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-use-after-return /home/trinity/trinity/sources/src/server/game/Globals/ObjectMgr.cpp:136:109 in ScriptInfo::GetDebugInfo[abi:cxx11]() const
Shadow bytes around the buggy address:
0x0fece79f3990: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39a0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39b0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39c0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39d0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
=>0x0fece79f39e0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5[f5]f5 f5 f5
0x0fece79f39f0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a00: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a10: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a20: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a30: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
=================================================================
==979109==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f633cfdcf64 at pc 0x000002988ab4 bp 0x7f633dfdf330 sp 0x7f633dfdf328
READ of size 4 at 0x7f633cfdcf64 thread T7
#0 0x2988ab3 in ScriptInfo::GetDebugInfo[abi:cxx11]() const /home/trinity/trinity/sources/src/server/game/Globals/ObjectMgr.cpp:136:124
#1 0x31acd00 in Map::_GetScriptUnit(Object*, bool, ScriptInfo const*) const /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:196:9
#2 0x31939f9 in Map::ScriptsProcess() /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:667:34
#3 0x31a4cbc in Map::ScriptCommandStart(ScriptInfo const&, unsigned int, Object*, Object*) /home/trinity/trinity/sources/src/server/game/Maps/MapScripts.cpp:96:9
#4 0x37c4bd1 in Spell::EffectActivateObject(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:3744:30
#5 0x371b887 in Spell::HandleEffects(Unit*, Item*, GameObject*, unsigned int, SpellEffectHandleMode) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:5036:9
#6 0x371ae38 in Spell::GOTargetInfo::DoTargetSpellHit(Spell*, unsigned char) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:2602:12
#7 0x37598ae in void Spell::DoProcessTargetContainer<std::vector<Spell::GOTargetInfo, std::allocator<Spell::GOTargetInfo> > >(std::vector<Spell::GOTargetInfo, std::allocator<Spell::GOTargetInfo> >&) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3473:24
#8 0x3735f07 in Spell::handle_immediate() /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3520:5
#9 0x372e298 in Spell::_cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3409:9
#10 0x371e102 in Spell::cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3190:5
#11 0x371e102 in Spell::prepare(SpellCastTargets const&, AuraEffect const*) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3087:9
#12 0x23d3d15 in WorldObject::CastSpell(SpellCastTargets const&, unsigned int, CastSpellExtraArgs const&) /home/trinity/trinity/sources/src/server/game/Entities/Object/Object.cpp:2800:19
#13 0x37ba271 in Spell::EffectTriggerSpell(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:830:15
#14 0x371b887 in Spell::HandleEffects(Unit*, Item*, GameObject*, unsigned int, SpellEffectHandleMode) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:5036:9
#15 0x3731dcc in Spell::HandleLaunchPhase() /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:7486:9
#16 0x372e17b in Spell::_cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3381:5
#17 0x373c084 in Spell::cast(bool) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3190:5
#18 0x373c084 in Spell::update(unsigned int) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:3744:17
#19 0x3753729 in SpellEvent::Execute(unsigned long, unsigned int) /home/trinity/trinity/sources/src/server/game/Spells/Spell.cpp:7372:18
#20 0x3fe5a76 in EventProcessor::Update(unsigned int) /home/trinity/trinity/sources/src/common/Utilities/EventProcessor.cpp:55:24
#21 0x27f7ecb in Unit::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Entities/Unit/Unit.cpp:427:14
#22 0x229fce4 in Creature::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Entities/Creature/Creature.cpp:746:19
#23 0x2d69298 in void Trinity::ObjectUpdater::Visit<Creature>(GridRefManager<Creature>&) /home/trinity/trinity/sources/src/server/game/Grids/Notifiers/GridNotifiers.cpp:405:32
#24 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, Creature>(Trinity::ObjectUpdater&, ContainerMapList<Creature>&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:44:7
#25 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > >(Trinity::ObjectUpdater&, ContainerMapList<TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:50:5
#26 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >(Trinity::ObjectUpdater&, ContainerMapList<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:51:5
#27 0x3159555 in void VisitorHelper<Trinity::ObjectUpdater, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >(Trinity::ObjectUpdater&, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:57:5
#28 0x3159555 in TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >::Visit(TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Dynamic/TypeContainerVisitor.h:91:13
#29 0x3159555 in void Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::Visit<Trinity::ObjectUpdater>(TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/Grid.h:90:21
#30 0x3159555 in void NGrid<8u, Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::VisitGrid<Trinity::ObjectUpdater, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >(unsigned int, unsigned int, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Grids/NGrid.h:151:31
#31 0x30e9ed1 in void Map::Visit<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >(Cell const&, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Maps/Map.h:982:25
#32 0x30e9ed1 in Map::VisitNearbyCellsOf(WorldObject*, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&, TypeContainerVisitor<Trinity::ObjectUpdater, TypeMapContainer<TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<DynamicObject, TypeNull> > > > > >&) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:734:13
#33 0x30eae60 in Map::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:801:9
#34 0x31228b4 in InstanceMap::Update(unsigned int) /home/trinity/trinity/sources/src/server/game/Maps/Map.cpp:3861:10
#35 0x31c5195 in MapUpdateRequest::call() /home/trinity/trinity/sources/src/server/game/Maps/MapUpdater.cpp:41:19
#36 0x31c3df2 in MapUpdater::WorkerThread() /home/trinity/trinity/sources/src/server/game/Maps/MapUpdater.cpp:112:18
#37 0x7f635b1d4cb3 (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6cb3)
#38 0x7f635b306608 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x9608)
#39 0x7f635aeb1102 in clone (/lib/x86_64-linux-gnu/libc.so.6+0x122102)
Address 0x7f633cfdcf64 is located in stack of thread T7 at offset 100 in frame
#0 0x37c49df in Spell::EffectActivateObject(SpellEffIndex) /home/trinity/trinity/sources/src/server/game/Spells/SpellEffects.cpp:3732
This frame has 2 object(s):
[32, 64) 'agg.tmp.i'
[96, 140) 'activateCommand' (line 3739) <== Memory access at offset 100 is inside this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-use-after-return /home/trinity/trinity/sources/src/server/game/Globals/ObjectMgr.cpp:136:124 in ScriptInfo::GetDebugInfo[abi:cxx11]() const
Shadow bytes around the buggy address:
0x0fece79f3990: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39a0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39b0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39c0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f39d0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
=>0x0fece79f39e0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5[f5]f5 f5 f5
0x0fece79f39f0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a00: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a10: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a20: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
0x0fece79f3a30: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment