Created attachment 304419 [details, diff] proposed patch valgrind: ==9038== Conditional jump or move depends on uninitialised value(s) ==9038== at 0x4043A8: main (xxkb.c:674) ==9038== ==9038== Conditional jump or move depends on uninitialised value(s) ==9038== at 0x4C27103: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==9038== by 0x4E76818: XFree (in /usr/lib64/libX11.so.6.3.0) ==9038== by 0x4043B8: main (xxkb.c:675) ==9038== ==9038== Invalid free() / delete / delete[] ==9038== at 0x4C2714D: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==9038== by 0x4E76818: XFree (in /usr/lib64/libX11.so.6.3.0) ==9038== by 0x4043B8: main (xxkb.c:675) gdb: Program received signal SIGABRT, Aborted. 0x00007ffff70c1575 in raise () from /lib64/libc.so.6 (gdb) bt #0 0x00007ffff70c1575 in raise () from /lib64/libc.so.6 #1 0x00007ffff70c280f in abort () from /lib64/libc.so.6 #2 0x00007ffff70fd15a in __libc_message () from /lib64/libc.so.6 #3 0x00007ffff7102705 in malloc_printerr () from /lib64/libc.so.6 #4 0x00007ffff710756c in free () from /lib64/libc.so.6 #5 0x00007ffff7ae8819 in XFree () from /usr/lib64/libX11.so.6 #6 0x0000000000404355 in main (argc=1, argv=0x7fffffffdea8) at xxkb.c:674 happens because xxkb is not checking XQueryTree return value
Easiest way to reproduce for me was to detach some toolbar in libreoffice from main window and then re-attach it again
Thank you very much! This somehow went past below my radar, just noticed today that you reported it. Sorry!