Skip to content

Instantly share code, notes, and snippets.

@DrMcCoy
Created July 26, 2018 16:47
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/4ea9e9340a485ef2dcd8ec589ed56610 to your computer and use it in GitHub Desktop.
Save DrMcCoy/4ea9e9340a485ef2dcd8ec589ed56610 to your computer and use it in GitHub Desktop.
==8039==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x61100000a280 at pc 0x5631639b1388 bp 0x7f7488bcb190 sp 0x7f7488bcb180
WRITE of size 4 at 0x61100000a280 thread T7 (GameInstance)
#0 0x5631639b1387 in Engines::NWN::Pathfinding::connectInnerFaces(unsigned int) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/pathfinding.cpp:185
#1 0x5631639b1abe in Engines::NWN::Pathfinding::finalize() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/pathfinding.cpp:97
#2 0x563163938e30 in Engines::NWN::Area::loadTiles() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:493
#3 0x563163959cce in Engines::NWN::Area::loadTileModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:437
#4 0x563163959cce in Engines::NWN::Area::loadModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:410
#5 0x56316395b526 in Engines::NWN::Area::show() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:236
#6 0x56316391bdab in Engines::NWN::Module::enterArea() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:434
#7 0x563163928df3 in Engines::NWN::Module::processEventQueue() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:471
#8 0x5631638f9a2d in Engines::NWN::Game::runModule() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:105
#9 0x563163901db4 in Engines::NWN::Game::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:83
#10 0x5631638d8510 in Engines::NWN::NWNEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/nwn.cpp:131
#11 0x563163e49346 in Engines::GameInstanceEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:222
#12 0x563163e4af40 in Engines::EngineManager::run(Engines::GameInstance&) const /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:249
#13 0x563163e4c90b in Engines::GameThread::threadMethod() /home/drmccoy/projects/xoreos/xoreos/src/engines/gamethread.cpp:87
#14 0x563164ede693 in Common::Thread::threadHelper(void*) /home/drmccoy/projects/xoreos/xoreos/src/common/thread.cpp:113
#15 0x7f74aa5ef7bb in SDL_RunThread /var/tmp/portage/media-libs/libsdl2-2.0.8-r2/work/SDL2-2.0.8/src/thread/SDL_thread.c:283
#16 0x7f74aa656228 in RunThread /var/tmp/portage/media-libs/libsdl2-2.0.8-r2/work/SDL2-2.0.8/src/thread/pthread/SDL_systhread.c:74
#17 0x7f74ab24b9a9 in start_thread /var/tmp/portage/sys-libs/glibc-2.27-r5/work/glibc-2.27/nptl/pthread_create.c:463
#18 0x7f74a682b41e in clone (/lib64/libc.so.6+0x10441e)
0x61100000a280 is located 40 bytes to the right of 216-byte region [0x61100000a180,0x61100000a258)
allocated by thread T7 (GameInstance) here:
#0 0x7f74ab552d80 in operator new(unsigned long) /var/tmp/portage/sys-devel/gcc-8.1.0-r3/work/gcc-8.1.0/libsanitizer/asan/asan_new_delete.cc:90
#1 0x563163a731da in Engines::NWN::WalkmeshLoader::readAABB(float*, unsigned char, Common::SeekableReadStream*, Common::StreamTokenizer*) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/walkmeshloader.cpp:257
#2 0x563163a73402 in Engines::NWN::WalkmeshLoader::readAABB(float*, unsigned char, Common::SeekableReadStream*, Common::StreamTokenizer*) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/walkmeshloader.cpp:260
#3 0x563163a73402 in Engines::NWN::WalkmeshLoader::readAABB(float*, unsigned char, Common::SeekableReadStream*, Common::StreamTokenizer*) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/walkmeshloader.cpp:260
#4 0x563163a73402 in Engines::NWN::WalkmeshLoader::readAABB(float*, unsigned char, Common::SeekableReadStream*, Common::StreamTokenizer*) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/walkmeshloader.cpp:260
#5 0x563163a73402 in Engines::NWN::WalkmeshLoader::readAABB(float*, unsigned char, Common::SeekableReadStream*, Common::StreamTokenizer*) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/walkmeshloader.cpp:260
#6 0x563163a73402 in Engines::NWN::WalkmeshLoader::readAABB(float*, unsigned char, Common::SeekableReadStream*, Common::StreamTokenizer*) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/walkmeshloader.cpp:260
#7 0x563163a7f816 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:137
#8 0x5631639cf2be in Engines::NWN::Pathfinding::addTile(Common::UString const&, float*, float*) /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/pathfinding.cpp:61
#9 0x563163938b93 in Engines::NWN::Area::loadTiles() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:489
#10 0x563163959cce in Engines::NWN::Area::loadTileModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:437
#11 0x563163959cce in Engines::NWN::Area::loadModels() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:410
#12 0x56316395b526 in Engines::NWN::Area::show() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/area.cpp:236
#13 0x56316391bdab in Engines::NWN::Module::enterArea() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:434
#14 0x563163928df3 in Engines::NWN::Module::processEventQueue() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/module.cpp:471
#15 0x5631638f9a2d in Engines::NWN::Game::runModule() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:105
#16 0x563163901db4 in Engines::NWN::Game::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/game.cpp:83
#17 0x5631638d8510 in Engines::NWN::NWNEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/nwn.cpp:131
#18 0x563163e49346 in Engines::GameInstanceEngine::run() /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:222
#19 0x563163e4af40 in Engines::EngineManager::run(Engines::GameInstance&) const /home/drmccoy/projects/xoreos/xoreos/src/engines/enginemanager.cpp:249
#20 0x563163e4c90b in Engines::GameThread::threadMethod() /home/drmccoy/projects/xoreos/xoreos/src/engines/gamethread.cpp:87
#21 0x563164ede693 in Common::Thread::threadHelper(void*) /home/drmccoy/projects/xoreos/xoreos/src/common/thread.cpp:113
#22 0x7f74aa5ef7bb in SDL_RunThread /var/tmp/portage/media-libs/libsdl2-2.0.8-r2/work/SDL2-2.0.8/src/thread/SDL_thread.c:283
#23 0x7f74aa656228 in RunThread /var/tmp/portage/media-libs/libsdl2-2.0.8-r2/work/SDL2-2.0.8/src/thread/pthread/SDL_systhread.c:74
#24 0x7f74ab24b9a9 in start_thread /var/tmp/portage/sys-libs/glibc-2.27-r5/work/glibc-2.27/nptl/pthread_create.c:463
#25 0x7f74a682b41e in clone (/lib64/libc.so.6+0x10441e)
Thread T7 (GameInstance) created by T0 here:
#0 0x7f74ab4afbe3 in __interceptor_pthread_create /var/tmp/portage/sys-devel/gcc-8.1.0-r3/work/gcc-8.1.0/libsanitizer/asan/asan_interceptors.cc:202
#1 0x7f74aa656296 in SDL_SYS_CreateThread /var/tmp/portage/media-libs/libsdl2-2.0.8-r2/work/SDL2-2.0.8/src/thread/pthread/SDL_systhread.c:115
SUMMARY: AddressSanitizer: heap-buffer-overflow /home/drmccoy/projects/xoreos/xoreos/src/engines/nwn/pathfinding.cpp:185 in Engines::NWN::Pathfinding::connectInnerFaces(unsigned int)
Shadow bytes around the buggy address:
0x0c227fff9400: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c227fff9410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c227fff9420: 00 00 00 fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff9430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c227fff9440: 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa fa
=>0x0c227fff9450:[fa]fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c227fff9460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c227fff9470: 00 00 00 fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c227fff9480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c227fff9490: 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa fa
0x0c227fff94a0: fa fa fa fa fa fa fa fa 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
==8039==ABORTING
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment