==22049==ERROR: AddressSanitizer: container-overflow on address 0x6150000fb210 at pc 0x00010262b567 bp 0x7ff7bdaf3810 sp 0x7ff7bdaf3808
READ of size 8 at 0x6150000fb210 thread T0
#0 0x10262b566 in std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>::operator->[abi:v160006]() const shared_ptr.h:857
#1 0x102635e2b in Hop::System::Physics::CollisionMesh::getByTag(unsigned long long) collisionMesh.h:424
#2 0x1026214ea in Hop::System::Physics::CollisionMesh::getBoundingBox(unsigned long long) collisionMesh.h:510
#3 0x102620676 in checkDelete(std::__1::vector<Hop::Object::Id, std::__1::allocator<Hop::Object::Id>>&, Hop::Object::EntityComponentSystem&, double, unsigned char, double) common.cpp:85
#4 0x102593b6d in JellyCramState::iteration(Hop::Object::EntityComponentSystem&, Hop::Console&, Hop::System::Physics::sCollision&, Hop::System::Physics::sPhysics&, std::__1::shared_ptr<Hop::World::AbstractWorld>, void (*)(Hop::Console&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>), unsigned char, bool) gameState.cpp:252
#5 0x1024156f8 in main main.cpp:299
#6 0x7ff80909f3a5 in start+0x795 (dyld:x86_64+0xfffffffffff5c3a5)
0x6150000fb210 is located 16 bytes inside of 512-byte region [0x6150000fb200,0x6150000fb400)
allocated by thread T0 here:
#0 0x10398460d in wrap__Znwm+0x7d (libclang_rt.asan_osx_dynamic.dylib:x86_64h+0xec60d)
#1 0x102451984 in void* std::__1::__libcpp_operator_new[abi:v160006]<unsigned long>(unsigned long) new:285
#2 0x10245190c in std::__1::__libcpp_allocate[abi:v160006](unsigned long, unsigned long) new:311
#3 0x1026391dc in std::__1::allocator<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>>::allocate[abi:v160006](unsigned long) allocator.h:115
#4 0x102638f7a in std::__1::__allocation_result<std::__1::allocator_traits<std::__1::allocator<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>>>::pointer> std::__1::__allocate_at_least[abi:v160006]<std::__1::allocator<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>>>(std::__1::allocator<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>>&, unsigned long) allocate_at_least.h:55
#5 0x10264da35 in std::__1::vector<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>, std::__1::allocator<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>>>::__vallocate[abi:v160006](unsigned long) vector:688
#6 0x10265267e in void std::__1::vector<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>, std::__1::allocator<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>>>::assign<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>*, 0>(std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>*, std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>*) vector:1388
#7 0x1026508cb in std::__1::vector<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>, std::__1::allocator<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>>>::operator=[abi:v160006](std::__1::vector<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>, std::__1::allocator<std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>>> const&) vector:1344
#8 0x10267a7a5 in Hop::System::Physics::CollisionMesh::operator=(Hop::System::Physics::CollisionMesh const&) collisionMesh.h:89
#9 0x10267a760 in Hop::Object::Component::cCollideable::operator=(Hop::Object::Component::cCollideable const&) cCollideable.h:11
#10 0x10267a3e4 in Hop::Object::Component::ComponentArray<Hop::Object::Component::cCollideable>::insert(Hop::Object::Id&, Hop::Object::Component::cCollideable) componentArray.h:185
#11 0x1026281e3 in void Hop::Object::EntityComponentSystem::addComponent<Hop::Object::Component::cCollideable>(Hop::Object::Id, Hop::Object::Component::cCollideable) entityComponentSystem.h:157
#12 0x1027ef9b9 in Hop::Object::EntityComponentSystem::lua_loadObject(lua_State*)+0xe79 (JellyCram:x86_64+0x1003e99b9)
#13 0x10244859c in int Hop::dispatchEntityComponentSystem<&Hop::Object::EntityComponentSystem::lua_loadObject(lua_State*)>(lua_State*) console.h:55
#14 0x10282b7c9 in luaD_precall+0x1a9 (JellyCram:x86_64+0x1004257c9)
#15 0x10284f75e in luaV_execute+0x462e (JellyCram:x86_64+0x10044975e)
#16 0x10282baa3 in luaD_callnoyield+0x53 (JellyCram:x86_64+0x100425aa3)
#17 0x10282a657 in luaD_rawrunprotected+0x57 (JellyCram:x86_64+0x100424657)
#18 0x10282bf55 in luaD_pcall+0x35 (JellyCram:x86_64+0x100425f55)
#19 0x10281dee2 in lua_pcallk+0xe2 (JellyCram:x86_64+0x100417ee2)
#20 0x10240f2fd in Hop::Console::runString(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) console.h:148
#21 0x10240f04a in run_lua_loop(Hop::Console&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) main.cpp:10
#22 0x1025903ba in JellyCramState::iteration(Hop::Object::EntityComponentSystem&, Hop::Console&, Hop::System::Physics::sCollision&, Hop::System::Physics::sPhysics&, std::__1::shared_ptr<Hop::World::AbstractWorld>, void (*)(Hop::Console&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>), unsigned char, bool) gameState.cpp:64
#23 0x1024156f8 in main main.cpp:299
#24 0x7ff80909f3a5 in start+0x795 (dyld:x86_64+0xfffffffffff5c3a5)
HINT: if you don't care about these errors you may set ASAN_OPTIONS=detect_container_overflow=0.
If you suspect a false positive see also: https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow.
SUMMARY: AddressSanitizer: container-overflow shared_ptr.h:857 in std::__1::shared_ptr<Hop::System::Physics::CollisionPrimitive>::operator->[abi:v160006]() const
Shadow bytes around the buggy address:
0x6150000faf80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x6150000fb000: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x6150000fb080: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x6150000fb100: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x6150000fb180: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x6150000fb200: 00 00[fc]fc fc fc fc fc fc fc fc fc fc fc fc fc
0x6150000fb280: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
0x6150000fb300: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
0x6150000fb380: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
0x6150000fb400: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x6150000fb480: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
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
==22049==ABORTING
8 8 8 zsh: abort ( cd build/JellyCram/; ./JellyCram; )