-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LV: leaking memory #5
Comments
Was this report produced with --leak-check=full? If it was, then the leaks are not limited to plazma. |
Chong Kai Xiong reply@reply.github.com schrieb:
yes it was, but they weren't caused by other actors iirc. can do another check later. |
you are right, here is the output for lv_analyzer with stdout driver (to remove SDL leaks): |
… from not properly freeing plugin instances (#5)
I've closed all the VisParam-related leaks on plugin unloads with 1563c00 Apart from some plugins not properly freeing their private data pointers after encountering errors during init(), I am confident that there are no serious system-wide leaks left. valgrind --leak-check=full doesn't show anything except leaks within SDL. I believe we can close this issue. Any leaks with individual plugins can be filed separately. |
still getting some leaks: https://gist.github.com/4708164 |
Alright I should've completely fixed the VisPluginData leaks. The ones remaining I can catch are from calls to ORC routines, SDL/Xlib and dlfcn: https://gist.github.com/4708432 |
I still get various leaks, related to RandomContext, DFT, System, PluginRegistry etc: https://gist.github.com/4712770 |
Try limiting the number of frames with -F for the program to terminate normally. It reveals no leaks for me. Breaking out from lv-tool with Ctrl-C will not call the C++ destructors. |
indeed that reduces leaked memory significantly, still there are leaks left: https://gist.github.com/4712879 |
Sure why not? It's quite simple to add on POSIX systems (still looking for a Windows example): Edit: C has a portable way to handle process signals (signal.h) I don't really consider the reported leaks in SDL, Xlib or ORC problems we can fix, so they shouldn't be under the scope of this issue. |
.. by adding the missing virtual destructor to class Hashable. ASan output was: > ================================================================= > ==21660==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x603000079d20 in thread T0: > object passed to delete has wrong type: > size of the allocated type: 32 bytes; > size of the deallocated type: 8 bytes. > #0 0x7f98137dc2a7 in operator delete(void*, unsigned long) /var/tmp/portage/sys-devel/gcc-11.3.1_p20221223/work/gcc-11-20221223/libsanitizer/asan/asan_new_delete.cpp:172 > #1 0x7f9802700116 in Hashtable::RemoveAll() [..]/libvisual-plugins/plugins/actor/G-Force/Common/GeneralTools/Hashtable.cpp:202 > #2 0x7f980270023f in Hashtable::~Hashtable() [..]/libvisual-plugins/plugins/actor/G-Force/Common/GeneralTools/Hashtable.cpp:32 > #3 0x7f98026dc9d5 in ExpressionDict::~ExpressionDict() ../../../../plugins/actor/G-Force/Common/math/Headers/ExpressionDict.h:20 > #4 0x7f98026dc9d5 in WaveShape::~WaveShape() ../../../../plugins/actor/G-Force/GForceCommon/Headers/WaveShape.h:11 > #5 0x7f98026dc9d5 in GForce::~GForce() [..]/libvisual-plugins/plugins/actor/G-Force/GForceCommon/G-Force.cpp:249 > #6 0x7f980270e7a5 in lv_gforce_cleanup [..]/libvisual-plugins/plugins/actor/G-Force/unix/libvisual/actor_gforce.cpp:140 > #7 0x7f981367e236 in visual_plugin_unload [..]/libvisual/libvisual/lv_plugin.c:655 > #8 0x7f9813674563 in actor_dtor [..]/libvisual/libvisual/lv_actor.c:52 > #9 0x7f98136aa9e8 in visual_object_destroy [..]/libvisual/libvisual/lv_object.c:104 > #10 0x7f981367c090 in visual_bin_switch_finalize [..]/libvisual/libvisual/lv_bin.c:695 > #11 0x7f981367c9dd in visual_bin_run [..]/libvisual/libvisual/lv_bin.c:853 > #12 0x5649c53eeedc in LV::Bin::run() [..]/libvisual/tools/lv-tool/lv-tool.cpp:108 > #13 0x5649c53eeedc in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:853 > #14 0x7f981317e209 (/lib64/libc.so.6+0x2a209) > #15 0x7f981317e2bb in __libc_start_main (/lib64/libc.so.6+0x2a2bb) > #16 0x5649c53f2110 in _start ([..]/INSTALL_PREFIX/bin/lv-tool+0xa110) > > 0x603000079d20 is located 0 bytes inside of 32-byte region [0x603000079d20,0x603000079d40) > allocated by thread T0 here: > #0 0x7f98137db247 in operator new(unsigned long) /var/tmp/portage/sys-devel/gcc-11.3.1_p20221223/work/gcc-11-20221223/libsanitizer/asan/asan_new_delete.cpp:99 > #1 0x7f98026edd5e in ExpressionDict::AddVar(char*, float*) [..]/libvisual-plugins/plugins/actor/G-Force/Common/math/ExpressionDict.cpp:15 > #2 0x7f98026e9331 in ExpressionDict::AddVar(UtilStr&, float*) [..]/libvisual-plugins/plugins/actor/G-Force/Common/math/Headers/ExpressionDict.h:27 > #3 0x7f98026e9331 in ExprArray::Compile(ArgList const&, long, ExpressionDict&) [..]/libvisual-plugins/plugins/actor/G-Force/Common/math/ExprArray.cpp:67 > #4 0x7f98026e0900 in WaveShape::Load(ArgList&, long) [..]/libvisual-plugins/plugins/actor/G-Force/GForceCommon/WaveShape.cpp:76 > #5 0x7f98026d898d in GForce::loadWaveShape(long, bool) [..]/libvisual-plugins/plugins/actor/G-Force/GForceCommon/G-Force.cpp:1251 > #6 0x7f98026db109 in GForce::RecordSample(long) [..]/libvisual-plugins/plugins/actor/G-Force/GForceCommon/G-Force.cpp:917 > #7 0x7f980270ea8e in lv_gforce_render [..]/libvisual-plugins/plugins/actor/G-Force/unix/libvisual/actor_gforce.cpp:264 > #8 0x7f98136767de in visual_actor_run [..]/libvisual/libvisual/lv_actor.c:777 > #9 0x7f981367c71a in visual_bin_run [..]/libvisual/libvisual/lv_bin.c:865 > #10 0x5649c53eeedc in LV::Bin::run() [..]/libvisual/tools/lv-tool/lv-tool.cpp:108 > #11 0x5649c53eeedc in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:853 > #12 0x7f981317e209 (/lib64/libc.so.6+0x2a209) > > SUMMARY: AddressSanitizer: new-delete-type-mismatch /var/tmp/portage/sys-devel/gcc-11.3.1_p20221223/work/gcc-11-20221223/libsanitizer/asan/asan_new_delete.cpp:172 in operator delete(void*, unsigned long) > ==21660==HINT: if you don't care about these errors you may set ASAN_OPTIONS=new_delete_type_mismatch=0 > ==21660==ABORTING
.. by adding the missing virtual destructor to class Hashable. ASan output was: > ================================================================= > ==21660==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x603000079d20 in thread T0: > object passed to delete has wrong type: > size of the allocated type: 32 bytes; > size of the deallocated type: 8 bytes. > #0 0x7f98137dc2a7 in operator delete(void*, unsigned long) /var/tmp/portage/sys-devel/gcc-11.3.1_p20221223/work/gcc-11-20221223/libsanitizer/asan/asan_new_delete.cpp:172 > #1 0x7f9802700116 in Hashtable::RemoveAll() [..]/libvisual-plugins/plugins/actor/G-Force/Common/GeneralTools/Hashtable.cpp:202 > #2 0x7f980270023f in Hashtable::~Hashtable() [..]/libvisual-plugins/plugins/actor/G-Force/Common/GeneralTools/Hashtable.cpp:32 > #3 0x7f98026dc9d5 in ExpressionDict::~ExpressionDict() ../../../../plugins/actor/G-Force/Common/math/Headers/ExpressionDict.h:20 > #4 0x7f98026dc9d5 in WaveShape::~WaveShape() ../../../../plugins/actor/G-Force/GForceCommon/Headers/WaveShape.h:11 > #5 0x7f98026dc9d5 in GForce::~GForce() [..]/libvisual-plugins/plugins/actor/G-Force/GForceCommon/G-Force.cpp:249 > #6 0x7f980270e7a5 in lv_gforce_cleanup [..]/libvisual-plugins/plugins/actor/G-Force/unix/libvisual/actor_gforce.cpp:140 > #7 0x7f981367e236 in visual_plugin_unload [..]/libvisual/libvisual/lv_plugin.c:655 > #8 0x7f9813674563 in actor_dtor [..]/libvisual/libvisual/lv_actor.c:52 > #9 0x7f98136aa9e8 in visual_object_destroy [..]/libvisual/libvisual/lv_object.c:104 > #10 0x7f981367c090 in visual_bin_switch_finalize [..]/libvisual/libvisual/lv_bin.c:695 > #11 0x7f981367c9dd in visual_bin_run [..]/libvisual/libvisual/lv_bin.c:853 > #12 0x5649c53eeedc in LV::Bin::run() [..]/libvisual/tools/lv-tool/lv-tool.cpp:108 > #13 0x5649c53eeedc in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:853 > #14 0x7f981317e209 (/lib64/libc.so.6+0x2a209) > #15 0x7f981317e2bb in __libc_start_main (/lib64/libc.so.6+0x2a2bb) > #16 0x5649c53f2110 in _start ([..]/INSTALL_PREFIX/bin/lv-tool+0xa110) > > 0x603000079d20 is located 0 bytes inside of 32-byte region [0x603000079d20,0x603000079d40) > allocated by thread T0 here: > #0 0x7f98137db247 in operator new(unsigned long) /var/tmp/portage/sys-devel/gcc-11.3.1_p20221223/work/gcc-11-20221223/libsanitizer/asan/asan_new_delete.cpp:99 > #1 0x7f98026edd5e in ExpressionDict::AddVar(char*, float*) [..]/libvisual-plugins/plugins/actor/G-Force/Common/math/ExpressionDict.cpp:15 > #2 0x7f98026e9331 in ExpressionDict::AddVar(UtilStr&, float*) [..]/libvisual-plugins/plugins/actor/G-Force/Common/math/Headers/ExpressionDict.h:27 > #3 0x7f98026e9331 in ExprArray::Compile(ArgList const&, long, ExpressionDict&) [..]/libvisual-plugins/plugins/actor/G-Force/Common/math/ExprArray.cpp:67 > #4 0x7f98026e0900 in WaveShape::Load(ArgList&, long) [..]/libvisual-plugins/plugins/actor/G-Force/GForceCommon/WaveShape.cpp:76 > #5 0x7f98026d898d in GForce::loadWaveShape(long, bool) [..]/libvisual-plugins/plugins/actor/G-Force/GForceCommon/G-Force.cpp:1251 > #6 0x7f98026db109 in GForce::RecordSample(long) [..]/libvisual-plugins/plugins/actor/G-Force/GForceCommon/G-Force.cpp:917 > #7 0x7f980270ea8e in lv_gforce_render [..]/libvisual-plugins/plugins/actor/G-Force/unix/libvisual/actor_gforce.cpp:264 > #8 0x7f98136767de in visual_actor_run [..]/libvisual/libvisual/lv_actor.c:777 > #9 0x7f981367c71a in visual_bin_run [..]/libvisual/libvisual/lv_bin.c:865 > #10 0x5649c53eeedc in LV::Bin::run() [..]/libvisual/tools/lv-tool/lv-tool.cpp:108 > #11 0x5649c53eeedc in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:853 > #12 0x7f981317e209 (/lib64/libc.so.6+0x2a209) > > SUMMARY: AddressSanitizer: new-delete-type-mismatch /var/tmp/portage/sys-devel/gcc-11.3.1_p20221223/work/gcc-11-20221223/libsanitizer/asan/asan_new_delete.cpp:172 in operator delete(void*, unsigned long) > ==21660==HINT: if you don't care about these errors you may set ASAN_OPTIONS=new_delete_type_mismatch=0 > ==21660==ABORTING
Could be triggered by resizing the window to be of tiny width. m_reflArray is an array of int elements and all loops oprate on "m_real_height - m_height" elements. So if the loop code is correct, then we need "(m_real_height - m_height) * sizeof(int)" many bytes for m_reflArray. Symptom through the eyes of AddressSanitizer: > ================================================================= > ==20990==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x61400000cbec at pc 0x7fe65de62216 bp 0x7ffd745ec810 sp 0x7ffd745ec808 > WRITE of size 4 at 0x61400000cbec thread T0 > #0 0x7fe65de62215 in Corona::genReflectedWaves(double) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:311 > #1 0x7fe65de62262 in Corona::drawReflected() [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:317 > #2 0x7fe65de6369f in Corona::update(TimedLevel*) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:504 > #3 0x7fe65de5fe22 in lv_corona_render [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:278 > #4 0x7fe66286edb4 in visual_actor_run [..]/libvisual/libvisual/lv_actor.c:783 > #5 0x7fe662874aac in visual_bin_run [..]/libvisual/libvisual/lv_bin.c:867 > #6 0x55a1ec4d51ee in LV::Bin::run() [..]/libvisual/tools/lv-tool/lv-tool.cpp:111 > #7 0x55a1ec4d51ee in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:869 > #8 0x7fe6624a8d09 in __libc_start_main ../csu/libc-start.c:308 > #9 0x55a1ec4d2889 in _start ([..]/INSTALL_PREFIX/bin/lv-tool+0x5889) > > 0x61400000cbec is located 0 bytes to the right of 428-byte region [0x61400000ca40,0x61400000cbec) > allocated by thread T0 here: > #0 0x7fe662a2ae8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145 > #1 0x7fe65de612d2 in Corona::setUpSurface(int, int) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:109 > #2 0x7fe65de602ed in lv_corona_dimension [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:198 > #3 0x7fe65de604a9 in lv_corona_events [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:210 > #4 0x7fe662875b94 in visual_plugin_events_pump [..]/libvisual/libvisual/lv_plugin.c:241 > #5 0x7fe66286e6d2 in negotiate_video [..]/libvisual/libvisual/lv_actor.c:613 > #6 0x7fe66286e6d2 in visual_actor_video_negotiate [..]/libvisual/libvisual/lv_actor.c:538 > #7 0x7fe6628718c4 in visual_bin_sync [..]/libvisual/libvisual/lv_bin.c:346 > #8 0x55a1ec4d640f in LV::Bin::sync(bool) [..]/libvisual/tools/lv-tool/lv-tool.cpp:103 > #9 0x55a1ec4d640f in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:926 > #10 0x7fe6624a8d09 in __libc_start_main ../csu/libc-start.c:308 > > SUMMARY: AddressSanitizer: heap-buffer-overflow [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:311 in Corona::genReflectedWaves(double) > Shadow bytes around the buggy address: > 0x0c287fff9920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c287fff9930: 00 00 00 00 00 00 00 00 00 00 00 00 06 fa fa fa > 0x0c287fff9940: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 > 0x0c287fff9950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c287fff9960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > =>0x0c287fff9970: 00 00 00 00 00 00 00 00 00 00 00 00 00[04]fa fa > 0x0c287fff9980: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff9990: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99c0: fa fa fa fa fa fa fa fa fa fa fa fa 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 > Shadow gap: cc > ==20990==ABORTING
Could be triggered by resizing the window to be of tiny width. m_reflArray is an array of int elements and all loops operate on "m_real_height - m_height" elements. So if the loop code is correct, then we need "(m_real_height - m_height) * sizeof(int)" many bytes for m_reflArray. Symptom through the eyes of AddressSanitizer: > ================================================================= > ==20990==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x61400000cbec at pc 0x7fe65de62216 bp 0x7ffd745ec810 sp 0x7ffd745ec808 > WRITE of size 4 at 0x61400000cbec thread T0 > #0 0x7fe65de62215 in Corona::genReflectedWaves(double) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:311 > #1 0x7fe65de62262 in Corona::drawReflected() [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:317 > #2 0x7fe65de6369f in Corona::update(TimedLevel*) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:504 > #3 0x7fe65de5fe22 in lv_corona_render [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:278 > #4 0x7fe66286edb4 in visual_actor_run [..]/libvisual/libvisual/lv_actor.c:783 > #5 0x7fe662874aac in visual_bin_run [..]/libvisual/libvisual/lv_bin.c:867 > #6 0x55a1ec4d51ee in LV::Bin::run() [..]/libvisual/tools/lv-tool/lv-tool.cpp:111 > #7 0x55a1ec4d51ee in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:869 > #8 0x7fe6624a8d09 in __libc_start_main ../csu/libc-start.c:308 > #9 0x55a1ec4d2889 in _start ([..]/INSTALL_PREFIX/bin/lv-tool+0x5889) > > 0x61400000cbec is located 0 bytes to the right of 428-byte region [0x61400000ca40,0x61400000cbec) > allocated by thread T0 here: > #0 0x7fe662a2ae8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145 > #1 0x7fe65de612d2 in Corona::setUpSurface(int, int) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:109 > #2 0x7fe65de602ed in lv_corona_dimension [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:198 > #3 0x7fe65de604a9 in lv_corona_events [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:210 > #4 0x7fe662875b94 in visual_plugin_events_pump [..]/libvisual/libvisual/lv_plugin.c:241 > #5 0x7fe66286e6d2 in negotiate_video [..]/libvisual/libvisual/lv_actor.c:613 > #6 0x7fe66286e6d2 in visual_actor_video_negotiate [..]/libvisual/libvisual/lv_actor.c:538 > #7 0x7fe6628718c4 in visual_bin_sync [..]/libvisual/libvisual/lv_bin.c:346 > #8 0x55a1ec4d640f in LV::Bin::sync(bool) [..]/libvisual/tools/lv-tool/lv-tool.cpp:103 > #9 0x55a1ec4d640f in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:926 > #10 0x7fe6624a8d09 in __libc_start_main ../csu/libc-start.c:308 > > SUMMARY: AddressSanitizer: heap-buffer-overflow [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:311 in Corona::genReflectedWaves(double) > Shadow bytes around the buggy address: > 0x0c287fff9920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c287fff9930: 00 00 00 00 00 00 00 00 00 00 00 00 06 fa fa fa > 0x0c287fff9940: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 > 0x0c287fff9950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c287fff9960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > =>0x0c287fff9970: 00 00 00 00 00 00 00 00 00 00 00 00 00[04]fa fa > 0x0c287fff9980: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff9990: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99c0: fa fa fa fa fa fa fa fa fa fa fa fa 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 > Shadow gap: cc > ==20990==ABORTING
Could be triggered by resizing the window to be of tiny width. m_reflArray is an array of int elements and all loops operate on "m_real_height - m_height" elements. So if the loop code is correct, then we need "(m_real_height - m_height) * sizeof(int)" many bytes for m_reflArray. Symptom through the eyes of AddressSanitizer: > ================================================================= > ==20990==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x61400000cbec at pc 0x7fe65de62216 bp 0x7ffd745ec810 sp 0x7ffd745ec808 > WRITE of size 4 at 0x61400000cbec thread T0 > #0 0x7fe65de62215 in Corona::genReflectedWaves(double) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:311 > #1 0x7fe65de62262 in Corona::drawReflected() [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:317 > #2 0x7fe65de6369f in Corona::update(TimedLevel*) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:504 > #3 0x7fe65de5fe22 in lv_corona_render [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:278 > #4 0x7fe66286edb4 in visual_actor_run [..]/libvisual/libvisual/lv_actor.c:783 > #5 0x7fe662874aac in visual_bin_run [..]/libvisual/libvisual/lv_bin.c:867 > #6 0x55a1ec4d51ee in LV::Bin::run() [..]/libvisual/tools/lv-tool/lv-tool.cpp:111 > #7 0x55a1ec4d51ee in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:869 > #8 0x7fe6624a8d09 in __libc_start_main ../csu/libc-start.c:308 > #9 0x55a1ec4d2889 in _start ([..]/INSTALL_PREFIX/bin/lv-tool+0x5889) > > 0x61400000cbec is located 0 bytes to the right of 428-byte region [0x61400000ca40,0x61400000cbec) > allocated by thread T0 here: > #0 0x7fe662a2ae8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145 > #1 0x7fe65de612d2 in Corona::setUpSurface(int, int) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:109 > #2 0x7fe65de602ed in lv_corona_dimension [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:198 > #3 0x7fe65de604a9 in lv_corona_events [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:210 > #4 0x7fe662875b94 in visual_plugin_events_pump [..]/libvisual/libvisual/lv_plugin.c:241 > #5 0x7fe66286e6d2 in negotiate_video [..]/libvisual/libvisual/lv_actor.c:613 > #6 0x7fe66286e6d2 in visual_actor_video_negotiate [..]/libvisual/libvisual/lv_actor.c:538 > #7 0x7fe6628718c4 in visual_bin_sync [..]/libvisual/libvisual/lv_bin.c:346 > #8 0x55a1ec4d640f in LV::Bin::sync(bool) [..]/libvisual/tools/lv-tool/lv-tool.cpp:103 > #9 0x55a1ec4d640f in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:926 > #10 0x7fe6624a8d09 in __libc_start_main ../csu/libc-start.c:308 > > SUMMARY: AddressSanitizer: heap-buffer-overflow [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:311 in Corona::genReflectedWaves(double) > Shadow bytes around the buggy address: > 0x0c287fff9920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c287fff9930: 00 00 00 00 00 00 00 00 00 00 00 00 06 fa fa fa > 0x0c287fff9940: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 > 0x0c287fff9950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c287fff9960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > =>0x0c287fff9970: 00 00 00 00 00 00 00 00 00 00 00 00 00[04]fa fa > 0x0c287fff9980: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff9990: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99c0: fa fa fa fa fa fa fa fa fa fa fa fa 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 > Shadow gap: cc > ==20990==ABORTING
Could be triggered by resizing the window to be of tiny width. m_reflArray is an array of int elements and all loops operate on "m_real_height - m_height" elements. So if the loop code is correct, then we need "(m_real_height - m_height) * sizeof(int)" many bytes for m_reflArray. Symptom through the eyes of AddressSanitizer: > ================================================================= > ==20990==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x61400000cbec at pc 0x7fe65de62216 bp 0x7ffd745ec810 sp 0x7ffd745ec808 > WRITE of size 4 at 0x61400000cbec thread T0 > #0 0x7fe65de62215 in Corona::genReflectedWaves(double) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:311 > #1 0x7fe65de62262 in Corona::drawReflected() [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:317 > #2 0x7fe65de6369f in Corona::update(TimedLevel*) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:504 > #3 0x7fe65de5fe22 in lv_corona_render [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:278 > #4 0x7fe66286edb4 in visual_actor_run [..]/libvisual/libvisual/lv_actor.c:783 > #5 0x7fe662874aac in visual_bin_run [..]/libvisual/libvisual/lv_bin.c:867 > #6 0x55a1ec4d51ee in LV::Bin::run() [..]/libvisual/tools/lv-tool/lv-tool.cpp:111 > #7 0x55a1ec4d51ee in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:869 > #8 0x7fe6624a8d09 in __libc_start_main ../csu/libc-start.c:308 > #9 0x55a1ec4d2889 in _start ([..]/INSTALL_PREFIX/bin/lv-tool+0x5889) > > 0x61400000cbec is located 0 bytes to the right of 428-byte region [0x61400000ca40,0x61400000cbec) > allocated by thread T0 here: > #0 0x7fe662a2ae8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145 > #1 0x7fe65de612d2 in Corona::setUpSurface(int, int) [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:109 > #2 0x7fe65de602ed in lv_corona_dimension [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:198 > #3 0x7fe65de604a9 in lv_corona_events [..]/libvisual-plugins/plugins/actor/corona/actor_corona.cpp:210 > #4 0x7fe662875b94 in visual_plugin_events_pump [..]/libvisual/libvisual/lv_plugin.c:241 > #5 0x7fe66286e6d2 in negotiate_video [..]/libvisual/libvisual/lv_actor.c:613 > #6 0x7fe66286e6d2 in visual_actor_video_negotiate [..]/libvisual/libvisual/lv_actor.c:538 > #7 0x7fe6628718c4 in visual_bin_sync [..]/libvisual/libvisual/lv_bin.c:346 > #8 0x55a1ec4d640f in LV::Bin::sync(bool) [..]/libvisual/tools/lv-tool/lv-tool.cpp:103 > #9 0x55a1ec4d640f in main [..]/libvisual/tools/lv-tool/lv-tool.cpp:926 > #10 0x7fe6624a8d09 in __libc_start_main ../csu/libc-start.c:308 > > SUMMARY: AddressSanitizer: heap-buffer-overflow [..]/libvisual-plugins/plugins/actor/corona/corona.cpp:311 in Corona::genReflectedWaves(double) > Shadow bytes around the buggy address: > 0x0c287fff9920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c287fff9930: 00 00 00 00 00 00 00 00 00 00 00 00 06 fa fa fa > 0x0c287fff9940: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 > 0x0c287fff9950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 0x0c287fff9960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > =>0x0c287fff9970: 00 00 00 00 00 00 00 00 00 00 00 00 00[04]fa fa > 0x0c287fff9980: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff9990: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa > 0x0c287fff99c0: fa fa fa fa fa fa fa fa fa fa fa fa 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 > Shadow gap: cc > ==20990==ABORTING (cherry picked from commit 04ab908)
==27455== Memcheck, a memory error detector
==27455== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==27455== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==27455== Command: lv-tool -a plazma
==27455==
lv-tool v0.1
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:408:print_cpu_info: CPU: Number of CPUs: 2
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:409:print_cpu_info: CPU: type 3
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:412:print_cpu_info: CPU: X86 type 6
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:413:print_cpu_info: CPU: cacheline 64
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:414:print_cpu_info: CPU: MMX 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:415:print_cpu_info: CPU: MMX2 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:416:print_cpu_info: CPU: SSE 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:417:print_cpu_info: CPU: SSE2 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:418:print_cpu_info: CPU: 3DNow 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_cpu.c:419:print_cpu_info: CPU: 3DNowExt 0
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:80:LV::PluginRegistry::PluginRegistry(): Initializing plugin registry
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/actor
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/input
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/morph
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /usr/local/lib/libvisual-0.5/transform
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/actor
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/input
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/morph
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin_registry.cpp:110:void LV::PluginRegistry::add_path(const std::string&): Adding to plugin search path: /home/daniel/.libvisual/transform
Loading actor 'plazma'...
Loading input 'debug'...
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:418:visual_bin_set_depth: old: 0 new: 1
WARNING /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_video.c:336:visual_video_set_pitch: Assertion `pitch > 0' failed
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:418:visual_bin_set_depth: old: 1 new: 1
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin.cpp:455:int visual_plugin_realize(VisPluginData_): Activating plugin 'plazma'
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_plugin.cpp:455:int visual_plugin_realize(VisPluginData_): Activating plugin 'debug'
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:293:visual_bin_sync: starting sync
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:326:visual_bin_sync: setting new video from actvideo 1 1
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:335:visual_bin_sync: one last video pitch check 320 depth old 1 forcedmain 1 noevent 0
INFO /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_actor.cpp:356:int visual_actor_video_negotiate(VisActor_, int, int, int): negotiating plugin Plazma plugin
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:349:visual_bin_sync: pitch after main actor negotiate 320
DEBUG /storage/code/libvisual/libvisual.git/libvisual/libvisual/lv_bin.c:377:visual_bin_sync: end sync function
==27455==
==27455== HEAP SUMMARY:
==27455== in use at exit: 1,180,582 bytes in 1,320 blocks
==27455== total heap usage: 63,010 allocs, 61,690 frees, 54,953,302 bytes allocated
==27455==
==27455== 1 bytes in 1 blocks are definitely lost in loss record 1 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x452F62E: _XlcDefaultMapModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F6AE: XSetLocaleModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40EDAA9: XSetLocaleModifiers (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F540A: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x80564A2: (anonymous namespace)::SDLDriver::create(VisVideoDepth, VisVideoAttributeOptions const, unsigned int, unsigned int, bool) (sdl_driver.cpp:87)
==27455== by 0x8052F11: SADisplay::create(VisVideoDepth, VisVideoAttributeOptions const, unsigned int, unsigned int, bool) (display.cpp:76)
==27455== by 0x80522D3: main (lv-tool.cpp:346)
==27455==
==27455== 16 bytes in 2 blocks are definitely lost in loss record 28 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x42D0E6C: strdup (in /lib/libc-2.13.so)
==27455== by 0x453D95C: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x453CF5E: _XimEncodeLocalICAttr (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x453E041: _XimSetICValueData (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45399B2: _XimLocalCreateIC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452256D: XCreateIC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40F54E9: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 23 bytes in 1 blocks are definitely lost in loss record 40 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4DEA4BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 23 bytes in 1 blocks are definitely lost in loss record 41 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4D924BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 23 bytes in 1 blocks are definitely lost in loss record 42 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x560C4BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 92 bytes in 4 blocks are definitely lost in loss record 164 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4D6C4BE: ???
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455== by 0x4128D3D: dlopen_doit (in /lib/libdl-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x41293CB: _dlerror_run (in /lib/libdl-2.13.so)
==27455== by 0x4128DE1: dlopen@@GLIBC_2.1 (in /lib/libdl-2.13.so)
==27455== by 0x4098365: visual_plugin_get_reference (lv_plugin.cpp:480)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455==
==27455== 112 (8 direct, 104 indirect) bytes in 1 blocks are definitely lost in loss record 171 of 260
==27455== at 0x4024E7A: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4526F84: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4527868: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45288ED: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4528F45: _XlcCreateLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45427A2: _XlcDefaultLoader (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F209: _XOpenLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F2E8: _XlcCurrentLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F680: XSetLocaleModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40EDAA9: XSetLocaleModifiers (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F53B5: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 120 bytes in 1 blocks are definitely lost in loss record 172 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4074432: visual_event_queue_new (lv_event.c:100)
==27455== by 0x80523B3: main (lv-tool.cpp:361)
==27455==
==27455== 124 bytes in 1 blocks are definitely lost in loss record 174 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x45F0668: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0721: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0344: xcb_connect_to_display_with_auth_info (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F03FE: xcb_connect (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x4516E2E: _XConnectXCB (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x450A280: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40ED121: XOpenDisplay (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F45ED: X11_Available (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5E29: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 124 bytes in 1 blocks are definitely lost in loss record 175 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x45F0668: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0721: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0344: xcb_connect_to_display_with_auth_info (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F03FE: xcb_connect (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x4516E2E: _XConnectXCB (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x450A280: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40ED121: XOpenDisplay (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F5E3E: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 124 bytes in 1 blocks are definitely lost in loss record 176 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x45F0668: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0721: ??? (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F0344: xcb_connect_to_display_with_auth_info (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x45F03FE: xcb_connect (in /usr/lib/libxcb.so.1.1.0)
==27455== by 0x4516E2E: _XConnectXCB (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x450A280: XOpenDisplay (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40ED121: XOpenDisplay (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F5E5F: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40E5FB6: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7AA0: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40C7B6F: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 202 (12 direct, 190 indirect) bytes in 1 blocks are definitely lost in loss record 186 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408345D: visual_list_add (lv_list.c:284)
==27455== by 0x408758B: visual_param_container_add (lv_param.c:146)
==27455== by 0x40960E1: LV::(anonymous namespace)::init_params(VisParamContainer) (lv_libvisual.cpp:80)
==27455== by 0x409626D: LV::System::System(int&, char**&) (lv_libvisual.cpp:149)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455== by 0x8051F7C: main (lv-tool.cpp:290)
==27455==
==27455== 980 (68 direct, 912 indirect) bytes in 1 blocks are definitely lost in loss record 222 of 260
==27455== at 0x4024E7A: realloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x4526F84: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4527868: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x45288ED: ??? (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4528F45: _XlcCreateLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x4545A7E: _XlcUtf8Loader (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F209: _XOpenLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F2E8: _XlcCurrentLC (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x452F680: XSetLocaleModifiers (in /usr/lib/libX11.so.6.3.0)
==27455== by 0x40EDAA9: XSetLocaleModifiers (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F540A: create_aux_windows (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455== by 0x40F60A4: X11_VideoInit (in /usr/lib/libSDL-1.2.so.0.11.4)
==27455==
==27455== 1,036 (12 direct, 1,024 indirect) bytes in 1 blocks are definitely lost in loss record 231 of 260
==27455== at 0x40249C7: operator new(unsigned int) (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x40A1A95: visual_palette_clone (lv_palette_c.cpp:42)
==27455== by 0x4078590: visual_video_set_palette (lv_video.c:285)
==27455== by 0x4091739: visual_actor_run (lv_actor.cpp:556)
==27455== by 0x40779C2: visual_bin_run (lv_bin.c:861)
==27455== by 0x80526B2: main (lv-tool.cpp:505)
==27455==
==27455== 1,176 (112 direct, 1,064 indirect) bytes in 4 blocks are definitely lost in loss record 234 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4097D3D: visual_plugin_ref_new (lv_plugin.cpp:284)
==27455== by 0x40984F9: visual_plugin_get_reference (lv_plugin.cpp:546)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455== by 0x409B197: LV::PluginRegistry::add_path(std::string const&) (lv_plugin_registry.cpp:115)
==27455== by 0x409ADCB: LV::PluginRegistry::PluginRegistry() (lv_plugin_registry.cpp:84)
==27455== by 0x4096381: LV::PluginRegistry::init() (lv_plugin_registry.h:26)
==27455== by 0x4096244: LV::System::System(int&, char**&) (lv_libvisual.cpp:146)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455==
==27455== 2,382 (196 direct, 2,186 indirect) bytes in 7 blocks are definitely lost in loss record 245 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4097D3D: visual_plugin_ref_new (lv_plugin.cpp:284)
==27455== by 0x40984F9: visual_plugin_get_reference (lv_plugin.cpp:546)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455== by 0x409B197: LV::PluginRegistry::add_path(std::string const&) (lv_plugin_registry.cpp:115)
==27455== by 0x409AE1A: LV::PluginRegistry::PluginRegistry() (lv_plugin_registry.cpp:85)
==27455== by 0x4096381: LV::PluginRegistry::init() (lv_plugin_registry.h:26)
==27455== by 0x4096244: LV::System::System(int&, char**&) (lv_libvisual.cpp:146)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455==
==27455== 4,096 bytes in 1 blocks are possibly lost in loss record 247 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408CE99: visual_buffer_allocate_data (lv_buffer.c:172)
==27455== by 0x408CA84: visual_buffer_new_allocate (lv_buffer.c:91)
==27455== by 0x4081299: input_interleaved_stereo (lv_audio.c:1336)
==27455== by 0x407EC2E: visual_audio_samplepool_input (lv_audio.c:708)
==27455== by 0x4030B97: inp_debug_upload (input_debug.c:166)
==27455== by 0x4095F64: visual_input_run (lv_input.cpp:183)
==27455== by 0x407771C: visual_bin_run (lv_bin.c:807)
==27455== by 0x80526B2: main (lv-tool.cpp:505)
==27455==
==27455== 5,180 (1,036 direct, 4,144 indirect) bytes in 1 blocks are definitely lost in loss record 248 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x5515227: ???
==27455== by 0x551424A: ???
==27455== by 0x5508690: ???
==27455== by 0x54DE7FA: ???
==27455== by 0x553F51F: ???
==27455== by 0x54DD95C: ???
==27455== by 0x400E2A5: call_init (in /lib/ld-2.13.so)
==27455== by 0x400E3A8: _dl_init (in /lib/ld-2.13.so)
==27455== by 0x4012270: dl_open_worker (in /lib/ld-2.13.so)
==27455== by 0x400E14F: _dl_catch_error (in /lib/ld-2.13.so)
==27455== by 0x4011B4B: _dl_open (in /lib/ld-2.13.so)
==27455==
==27455== 6,383 (504 direct, 5,879 indirect) bytes in 18 blocks are definitely lost in loss record 250 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4097D3D: visual_plugin_ref_new (lv_plugin.cpp:284)
==27455== by 0x40984F9: visual_plugin_get_reference (lv_plugin.cpp:546)
==27455== by 0x409B64C: LV::PluginRegistry::Impl::get_plugins_from_dir(std::vector<VisPluginRef, std::allocator<VisPluginRef> >&, std::string const&) (lv_plugin_registry.cpp:212)
==27455== by 0x409B197: LV::PluginRegistry::add_path(std::string const&) (lv_plugin_registry.cpp:115)
==27455== by 0x409AD7C: LV::PluginRegistry::PluginRegistry() (lv_plugin_registry.cpp:83)
==27455== by 0x4096381: LV::PluginRegistry::init() (lv_plugin_registry.h:26)
==27455== by 0x4096244: LV::System::System(int&, char**&) (lv_libvisual.cpp:146)
==27455== by 0x40A1564: LV::System::init(int&, char**&) (lv_libvisual.h:61)
==27455== by 0x40A14CC: visual_init (lv_libvisual_c.cpp:24)
==27455==
==27455== 8,192 bytes in 2 blocks are possibly lost in loss record 253 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408CE99: visual_buffer_allocate_data (lv_buffer.c:172)
==27455== by 0x408CA84: visual_buffer_new_allocate (lv_buffer.c:91)
==27455== by 0x4081274: input_interleaved_stereo (lv_audio.c:1336)
==27455== by 0x407EC2E: visual_audio_samplepool_input (lv_audio.c:708)
==27455== by 0x4030B97: inp_debug_upload (input_debug.c:166)
==27455== by 0x4095F64: visual_input_run (lv_input.cpp:183)
==27455== by 0x407771C: visual_bin_run (lv_bin.c:807)
==27455== by 0x80526B2: main (lv-tool.cpp:505)
==27455==
==27455== 40,960 bytes in 5 blocks are possibly lost in loss record 254 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x408CE99: visual_buffer_allocate_data (lv_buffer.c:172)
==27455== by 0x408CA84: visual_buffer_new_allocate (lv_buffer.c:91)
==27455== by 0x408099D: sample_data_func (lv_audio.c:1261)
==27455== by 0x408C1EA: fixate_with_partial_data_request (lv_ringbuffer.c:323)
==27455== by 0x408BEBF: visual_ringbuffer_get_data_offset (lv_ringbuffer.c:211)
==27455== by 0x408C3AE: visual_ringbuffer_get_data_from_end (lv_ringbuffer.c:370)
==27455== by 0x407D93D: visual_audio_get_sample (lv_audio.c:342)
==27455== by 0x407DCE4: visual_audio_get_sample_mixed (lv_audio.c:426)
==27455== by 0x402B19A: act_plazma_render (actor_plazma.c:235)
==27455==
==27455== 256,000 bytes in 1 blocks are possibly lost in loss record 257 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x402B680: _plazma_init (plazma.c:89)
==27455== by 0x402AEF8: act_plazma_dimension (actor_plazma.c:166)
==27455== by 0x402AF5A: act_plazma_events (actor_plazma.c:180)
==27455== by 0x4097AAD: visual_plugin_events_pump (lv_plugin.cpp:232)
==27455== by 0x4091264: negotiate_video (lv_actor.cpp:438)
==27455== by 0x4090E90: visual_actor_video_negotiate (lv_actor.cpp:365)
==27455== by 0x4075C57: visual_bin_sync (lv_bin.c:346)
==27455== by 0x80523A3: main (lv-tool.cpp:356)
==27455==
==27455== 256,000 bytes in 1 blocks are possibly lost in loss record 258 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x402B6A8: _plazma_init (plazma.c:90)
==27455== by 0x402AEF8: act_plazma_dimension (actor_plazma.c:166)
==27455== by 0x402AF5A: act_plazma_events (actor_plazma.c:180)
==27455== by 0x4097AAD: visual_plugin_events_pump (lv_plugin.cpp:232)
==27455== by 0x4091264: negotiate_video (lv_actor.cpp:438)
==27455== by 0x4090E90: visual_actor_video_negotiate (lv_actor.cpp:365)
==27455== by 0x4075C57: visual_bin_sync (lv_bin.c:346)
==27455== by 0x80523A3: main (lv-tool.cpp:356)
==27455==
==27455== 561,713 (124 direct, 561,589 indirect) bytes in 1 blocks are definitely lost in loss record 260 of 260
==27455== at 0x4024DA5: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==27455== by 0x407C593: visual_mem_malloc (lv_mem.c:123)
==27455== by 0x407C64B: visual_mem_malloc0 (lv_mem.c:140)
==27455== by 0x4075078: visual_bin_new (lv_bin.c:101)
==27455== by 0x805200E: main (lv-tool.cpp:298)
==27455==
==27455== LEAK SUMMARY:
==27455== definitely lost: 2,742 bytes in 49 blocks
==27455== indirectly lost: 577,092 bytes in 779 blocks
==27455== possibly lost: 565,248 bytes in 10 blocks
==27455== still reachable: 35,500 bytes in 482 blocks
==27455== suppressed: 0 bytes in 0 blocks
==27455== Reachable blocks (those to which a pointer was found) are not shown.
==27455== To see them, rerun with: --leak-check=full --show-reachable=yes
==27455==
==27455== For counts of detected and suppressed errors, rerun with: -v
==27455== ERROR SUMMARY: 24 errors from 24 contexts (suppressed: 2634 from 14)
The text was updated successfully, but these errors were encountered: