Skip to content

Instantly share code, notes, and snippets.

@DrMcCoy
Created February 2, 2019 16:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DrMcCoy/52a11e8dd20b9a38194435564d6464cf to your computer and use it in GitHub Desktop.
Save DrMcCoy/52a11e8dd20b9a38194435564d6464cf to your computer and use it in GitHub Desktop.
==5133==ERROR: AddressSanitizer: heap-use-after-free on address 0x60b0000e7f72 at pc 0x563dd77ea635 bp 0x7fe314d452c0 sp 0x7fe314d452b0
READ of size 1 at 0x60b0000e7f72 thread T8 (GameInstance)
#0 0x563dd77ea634 in Engines::NWN::Pathfinding::finalize() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/pathfinding.cpp:139
#1 0x563dd775c46f in Engines::NWN::Area::loadTiles() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:501
#2 0x563dd77780fe in Engines::NWN::Area::loadTileModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:442
#3 0x563dd77780fe in Engines::NWN::Area::loadModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:415
#4 0x563dd7779956 in Engines::NWN::Area::show() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:239
#5 0x563dd773f091 in Engines::NWN::Module::enterArea() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:434
#6 0x563dd774c453 in Engines::NWN::Module::processEventQueue() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:471
#7 0x563dd771c5dd in Engines::NWN::Game::runModule() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:105
#8 0x563dd7724b74 in Engines::NWN::Game::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:83
#9 0x563dd76fa58b in Engines::NWN::NWNEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/nwn.cpp:131
#10 0x563dd7cc35f6 in Engines::GameInstanceEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:225
#11 0x563dd7cc5490 in Engines::EngineManager::run(Engines::GameInstance&) const /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:252
#12 0x563dd7cc6e3b in Engines::GameThread::threadMethod() /home/drmccoy/projects/xoreos/xoreos/src/engines/gamethread.cpp:87
#13 0x563dd8fbdaa3 in Common::Thread::threadHelper(void*) /home/drmccoy/projects/xoreos/xoreos/src/common/thread.cpp:113
#14 0x7fe3331ec18b in SDL_RunThread /var/tmp/portage/media-libs/libsdl2-2.0.9/work/SDL2-2.0.9/src/thread/SDL_thread.c:283
#15 0x7fe333253478 in RunThread /var/tmp/portage/media-libs/libsdl2-2.0.9/work/SDL2-2.0.9/src/thread/pthread/SDL_systhread.c:78
#16 0x7fe33385d469 in start_thread /var/tmp/portage/sys-libs/glibc-2.28-r5/work/glibc-2.28/nptl/pthread_create.c:486
#17 0x7fe32ff7ef3e in clone (/lib64/libc.so.6+0x105f3e)
0x60b0000e7f72 is located 18 bytes inside of 104-byte region [0x60b0000e7f60,0x60b0000e7fc8)
freed by thread T8 (GameInstance) here:
#0 0x7fe333968030 in operator delete(void*) /var/tmp/portage/sys-devel/gcc-8.2.0-r6/work/gcc-8.2.0/libsanitizer/asan/asan_new_delete.cc:135
#1 0x563dd78c6e76 in void Common::DeallocatorDefault::destroy<Common::StreamTokenizer>(Common::StreamTokenizer*) /home/drmccoy/projects/xoreos/xoreos/src/common/deallocator.h:44
#2 0x563dd78c6e76 in Common::ScopedPtrBase<Common::StreamTokenizer, Common::DeallocatorDefault>::~ScopedPtrBase() /home/drmccoy/projects/xoreos/xoreos/src/common/scopedptr.h:83
#3 0x563dd78c6e76 in Common::ScopedPtr<Common::StreamTokenizer, Common::DeallocatorDefault>::~ScopedPtr() /home/drmccoy/projects/xoreos/xoreos/src/common/scopedptr.h:120
#4 0x563dd78c6e76 in Engines::NWN::WalkmeshLoader::load(Aurora::FileType, Common::UString const&, float*, float*, std::vector<float, std::allocator<float> >&, std::vector<unsigned int, std::allocator<unsigned int> >&, std::vector<unsigned int, std::allocator<unsigned int> >&, Common::UString const&) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/walkmeshloader.cpp:61
#5 0x563dd780324e in Engines::NWN::Pathfinding::addTile(Common::UString const&, float*, float*) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/pathfinding.cpp:64
#6 0x563dd775c04e in Engines::NWN::Area::loadTiles() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:495
#7 0x563dd77780fe in Engines::NWN::Area::loadTileModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:442
#8 0x563dd77780fe in Engines::NWN::Area::loadModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:415
#9 0x563dd7779956 in Engines::NWN::Area::show() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:239
#10 0x563dd773f091 in Engines::NWN::Module::enterArea() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:434
#11 0x563dd774c453 in Engines::NWN::Module::processEventQueue() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:471
#12 0x563dd771c5dd in Engines::NWN::Game::runModule() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:105
#13 0x563dd7724b74 in Engines::NWN::Game::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:83
#14 0x563dd76fa58b in Engines::NWN::NWNEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/nwn.cpp:131
#15 0x563dd7cc35f6 in Engines::GameInstanceEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:225
#16 0x563dd7cc5490 in Engines::EngineManager::run(Engines::GameInstance&) const /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:252
#17 0x563dd7cc6e3b in Engines::GameThread::threadMethod() /home/drmccoy/projects/xoreos/xoreos/src/engines/gamethread.cpp:87
#18 0x563dd8fbdaa3 in Common::Thread::threadHelper(void*) /home/drmccoy/projects/xoreos/xoreos/src/common/thread.cpp:113
#19 0x7fe3331ec18b in SDL_RunThread /var/tmp/portage/media-libs/libsdl2-2.0.9/work/SDL2-2.0.9/src/thread/SDL_thread.c:283
previously allocated by thread T8 (GameInstance) here:
#0 0x7fe3339671c0 in operator new(unsigned long) /var/tmp/portage/sys-devel/gcc-8.2.0-r6/work/gcc-8.2.0/libsanitizer/asan/asan_new_delete.cc:90
#1 0x563dd78c471e in Engines::NWN::WalkmeshLoader::load(Aurora::FileType, Common::UString const&, float*, float*, std::vector<float, std::allocator<float> >&, std::vector<unsigned int, std::allocator<unsigned int> >&, std::vector<unsigned int, std::allocator<unsigned int> >&, Common::UString const&) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/walkmeshloader.cpp:61
#2 0x563dd780324e in Engines::NWN::Pathfinding::addTile(Common::UString const&, float*, float*) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/pathfinding.cpp:64
#3 0x563dd775c04e in Engines::NWN::Area::loadTiles() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:495
#4 0x563dd77780fe in Engines::NWN::Area::loadTileModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:442
#5 0x563dd77780fe in Engines::NWN::Area::loadModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:415
#6 0x563dd7779956 in Engines::NWN::Area::show() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:239
#7 0x563dd773f091 in Engines::NWN::Module::enterArea() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:434
#8 0x563dd774c453 in Engines::NWN::Module::processEventQueue() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:471
#9 0x563dd771c5dd in Engines::NWN::Game::runModule() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:105
#10 0x563dd7724b74 in Engines::NWN::Game::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:83
#11 0x563dd76fa58b in Engines::NWN::NWNEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/nwn.cpp:131
#12 0x563dd7cc35f6 in Engines::GameInstanceEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:225
#13 0x563dd7cc5490 in Engines::EngineManager::run(Engines::GameInstance&) const /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:252
#14 0x563dd7cc6e3b in Engines::GameThread::threadMethod() /home/drmccoy/projects/xoreos/xoreos/src/engines/gamethread.cpp:87
#15 0x563dd8fbdaa3 in Common::Thread::threadHelper(void*) /home/drmccoy/projects/xoreos/xoreos/src/common/thread.cpp:113
#16 0x7fe3331ec18b in SDL_RunThread /var/tmp/portage/media-libs/libsdl2-2.0.9/work/SDL2-2.0.9/src/thread/SDL_thread.c:283
Thread T8 (GameInstance) created by T0 here:
#0 0x7fe3338c2b73 in __interceptor_pthread_create /var/tmp/portage/sys-devel/gcc-8.2.0-r6/work/gcc-8.2.0/libsanitizer/asan/asan_interceptors.cc:202
#1 0x7fe333253546 in SDL_SYS_CreateThread /var/tmp/portage/media-libs/libsdl2-2.0.9/work/SDL2-2.0.9/src/thread/pthread/SDL_systhread.c:119
SUMMARY: AddressSanitizer: heap-use-after-free /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/pathfinding.cpp:139 in Engines::NWN::Pathfinding::finalize()
Shadow bytes around the buggy address:
0x0c1680014f90: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 00
0x0c1680014fa0: 00 fa fa fa fa fa fa fa fa fa 00 00 00 00 00 00
0x0c1680014fb0: 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa fa
0x0c1680014fc0: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa
0x0c1680014fd0: fa fa fa fa fa fa 00 00 00 00 00 00 00 00 00 00
=>0x0c1680014fe0: 00 00 00 fa fa fa fa fa fa fa fa fa fd fd[fd]fd
0x0c1680014ff0: fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa
0x0c1680015000: fa fa 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c1680015010: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c1680015020: 00 00 00 00 00 00 fa fa fa fa fa fa fa fa 00 00
0x0c1680015030: 00 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa
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
==5133==ABORTING
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment