ii8 / havoc

minimal terminal emulator for wayland
Other
103 stars 17 forks source link

havoc leaks memory on simple start and termination #36

Closed matu3ba closed 2 years ago

matu3ba commented 2 years ago

Running in shell valgrind -s --leak-check=full --show-leak-kinds=all ./havoc &> leak_report.txt and closing the terminal leads to the following report:

```txt ==350889== Memcheck, a memory error detector ==350889== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==350889== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info ==350889== Command: ./havoc ==350889== ==350889== Warning: noted but unhandled ioctl 0x5441 with no size/direction hints. ==350889== This could cause spurious value errors to appear. ==350889== See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper. ==350889== ==350889== HEAP SUMMARY: ==350889== in use at exit: 264,646 bytes in 1,594 blocks ==350889== total heap usage: 15,602 allocs, 14,008 frees, 6,911,963 bytes allocated ==350889== ==350889== 2 bytes in 1 blocks are still reachable in loss record 1 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FF86B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 5 bytes in 1 blocks are still reachable in loss record 2 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F9E66: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 6 bytes in 1 blocks are still reachable in loss record 3 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F9EC2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 7 bytes in 1 blocks are still reachable in loss record 4 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FA421: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 8 bytes in 1 blocks are still reachable in loss record 5 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F9CA7: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 9 bytes in 1 blocks are still reachable in loss record 6 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A0194E: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01C14: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 10 bytes in 1 blocks are still reachable in loss record 7 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F9E38: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 10 bytes in 1 blocks are still reachable in loss record 8 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so) ==350889== by 0x49EB958: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 10 bytes in 1 blocks are still reachable in loss record 9 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so) ==350889== by 0x49FE0AB: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 10 bytes in 1 blocks are still reachable in loss record 10 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so) ==350889== by 0x49F3AD6: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 10 bytes in 1 blocks are still reachable in loss record 11 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so) ==350889== by 0x49FF91E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 12 bytes in 1 blocks are still reachable in loss record 12 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A070CD: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F131A: xkb_compose_table_new_from_locale (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x112534: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 16 bytes in 1 blocks are still reachable in loss record 13 of 43 ==350889== at 0x483E6D5: malloc (vg_replace_malloc.c:379) ==350889== by 0x49FF12E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FF8C0: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 19 bytes in 1 blocks are still reachable in loss record 14 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A0194E: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01C3E: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 23 bytes in 1 blocks are still reachable in loss record 15 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A0194E: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01BE1: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 24 bytes in 1 blocks are still reachable in loss record 16 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x49ECAC8: xkb_compose_state_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x11254A: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 30 bytes in 1 blocks are still reachable in loss record 17 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A0194E: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01C80: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 32 bytes in 1 blocks are still reachable in loss record 18 of 43 ==350889== at 0x483E6D5: malloc (vg_replace_malloc.c:379) ==350889== by 0x4A019D8: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01C80: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 32 bytes in 1 blocks are still reachable in loss record 19 of 43 ==350889== at 0x483E6D5: malloc (vg_replace_malloc.c:379) ==350889== by 0x4A01A98: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01C3E: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 32 bytes in 1 blocks are still reachable in loss record 20 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x4A01E48: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 44 bytes in 8 blocks are still reachable in loss record 21 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A016FC: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03283: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 64 bytes in 1 blocks are still reachable in loss record 22 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x4A07047: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F131A: xkb_compose_table_new_from_locale (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x112534: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 80 bytes in 1 blocks are still reachable in loss record 23 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x49CF94D: wl_display_read_events (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFF33: wl_display_dispatch_queue (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 136 bytes in 1 blocks are still reachable in loss record 24 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x4A052C9: xkb_state_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124DD: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 256 bytes in 8 blocks are still reachable in loss record 25 of 43 ==350889== at 0x484383F: realloc (vg_replace_malloc.c:1192) ==350889== by 0x49FDC45: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FDF88: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 320 bytes in 20 blocks are still reachable in loss record 26 of 43 ==350889== at 0x483E6D5: malloc (vg_replace_malloc.c:379) ==350889== by 0x49FDC45: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FDF88: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 576 bytes in 1 blocks are still reachable in loss record 27 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x49EBA0D: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 638 bytes in 75 blocks are still reachable in loss record 28 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FA49A: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 813 bytes in 64 blocks are still reachable in loss record 29 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F9CDC: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 1,200 bytes in 15 blocks are still reachable in loss record 30 of 43 ==350889== at 0x483E6D5: malloc (vg_replace_malloc.c:379) ==350889== by 0x49FD89C: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FDF88: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 1,344 bytes in 1 blocks are still reachable in loss record 31 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x49FDFF7: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 1,424 bytes in 1 blocks are still reachable in loss record 32 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x4A0167C: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03283: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 2,184 bytes in 1 blocks are still reachable in loss record 33 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x4A01CEB: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 2,787 bytes in 561 blocks are still reachable in loss record 34 of 43 ==350889== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==350889== by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so) ==350889== by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FB1C0: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 3,360 bytes in 12 blocks are still reachable in loss record 35 of 43 ==350889== at 0x484383F: realloc (vg_replace_malloc.c:1192) ==350889== by 0x49FD89C: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FDF88: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 4,096 bytes in 1 blocks are still reachable in loss record 36 of 43 ==350889== at 0x484383F: realloc (vg_replace_malloc.c:1192) ==350889== by 0x4A013DE: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FB1C0: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 4,608 bytes in 1 blocks are still reachable in loss record 37 of 43 ==350889== at 0x484383F: realloc (vg_replace_malloc.c:1192) ==350889== by 0x49EB3ED: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F3D31: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 8,192 bytes in 1 blocks are still reachable in loss record 38 of 43 ==350889== at 0x484383F: realloc (vg_replace_malloc.c:1192) ==350889== by 0x4A01340: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F9CDC: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 9,576 bytes in 399 blocks are still reachable in loss record 39 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x49FFA9A: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 22,401 bytes in 1 blocks are still reachable in loss record 40 of 43 ==350889== at 0x484383F: realloc (vg_replace_malloc.c:1192) ==350889== by 0x49EB1DC: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49EB263: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F1373: xkb_compose_table_new_from_locale (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x112534: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 34,032 bytes in 1 blocks are still reachable in loss record 41 of 43 ==350889== at 0x48435FF: calloc (vg_replace_malloc.c:1117) ==350889== by 0x49EB771: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== 53,248 bytes in 399 blocks are still reachable in loss record 42 of 43 ==350889== at 0x483E6D5: malloc (vg_replace_malloc.c:379) ==350889== by 0x49F625A: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FEA82: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49FF8C0: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== ==350889== 112,960 bytes in 1 blocks are still reachable in loss record 43 of 43 ==350889== at 0x484383F: realloc (vg_replace_malloc.c:1192) ==350889== by 0x49EB1F8: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49EB263: ??? (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x49F1373: xkb_compose_table_new_from_locale (in /usr/lib/libxkbcommon.so.0.0.0) ==350889== by 0x112534: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0) ==350889== by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0) ==350889== by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc) ==350889== ==350889== LEAK SUMMARY: ==350889== definitely lost: 0 bytes in 0 blocks ==350889== indirectly lost: 0 bytes in 0 blocks ==350889== possibly lost: 0 bytes in 0 blocks ==350889== still reachable: 264,646 bytes in 1,594 blocks ==350889== suppressed: 0 bytes in 0 blocks ==350889== ==350889== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) ```
matu3ba commented 2 years ago

At least the memory leak size etc is consistent, so havoc does only forget to clean up some permanently needed resources on closing.

```txt minimal: ==189086== LEAK SUMMARY: ==189086== definitely lost: 0 bytes in 0 blocks ==189086== indirectly lost: 0 bytes in 0 blocks ==189086== possibly lost: 0 bytes in 0 blocks ==189086== still reachable: 264,646 bytes in 1,594 blocks ==189086== suppressed: 0 bytes in 0 blocks ==189086== ==189086== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) running updates: ==184012== LEAK SUMMARY: ==184012== definitely lost: 0 bytes in 0 blocks ==184012== indirectly lost: 0 bytes in 0 blocks ==184012== possibly lost: 0 bytes in 0 blocks ==184012== still reachable: 264,646 bytes in 1,594 blocks ==184012== suppressed: 0 bytes in 0 blocks ==184012== ==184012== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) running rg: ==189322== LEAK SUMMARY: ==189322== definitely lost: 0 bytes in 0 blocks ==189322== indirectly lost: 0 bytes in 0 blocks ==189322== possibly lost: 0 bytes in 0 blocks ==189322== still reachable: 264,646 bytes in 1,594 blocks ==189322== suppressed: 0 bytes in 0 blocks ==189322== ==189322== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) running rg with piping output: ==189480== LEAK SUMMARY: ==189480== definitely lost: 0 bytes in 0 blocks ==189480== indirectly lost: 0 bytes in 0 blocks ==189480== possibly lost: 0 bytes in 0 blocks ==189480== still reachable: 264,646 bytes in 1,594 blocks ==189480== suppressed: 0 bytes in 0 blocks ==189480== ==189480== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) neovim ==189724== LEAK SUMMARY: ==189724== definitely lost: 0 bytes in 0 blocks ==189724== indirectly lost: 0 bytes in 0 blocks ==189724== possibly lost: 0 bytes in 0 blocks ==189724== still reachable: 264,646 bytes in 1,594 blocks ==189724== suppressed: 0 bytes in 0 blocks ==189724== ==189724== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) vim ==190128== LEAK SUMMARY: ==190128== definitely lost: 0 bytes in 0 blocks ==190128== indirectly lost: 0 bytes in 0 blocks ==190128== possibly lost: 0 bytes in 0 blocks ==190128== still reachable: 264,646 bytes in 1,594 blocks ==190128== suppressed: 0 bytes in 0 blocks ==190128== ==190128== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) ```
ii8 commented 2 years ago

Havoc uses libraries that might rely on the OS to do some cleanup, looks like libxkeyboard and libffi(used by wayland lib) do that. I'll have a look later anyway though, just in case.

ii8 commented 2 years ago

Yea, there are no memory leaks here. You can see in the summary it always says lost: 0 bytes in 0 blocks. These are just bits of memory not cleaned up before the program exits, but they're still reachable and not growing with time. I added a commit to fix one of these to make the valgrind output smaller, the rest are in the wayland and xkbcommon libraries though I think.