Segfault on window pressing q after opening any image

Ristretto consistently segfaults when closing the window that had an image loaded.

I close ristretto window by pressing q on the keyboard.

This does not happen if I click the X, or alt+F4, or ctrl+q

# Archlinux
gdk-pixbuf2 2.44.6-2
glycin 2.1.1-1
ristretto 0.14.0-1
gtk3 1:3.24.52-1

# Wayland
labwc 0.9.6
wlroots0.20 0.20.0-1

Steps to reproduce

  1. ristretto /path/to/some.jpg
  2. Close the window, coredump.
Here is the coredump backtrace:
abr 16 11:39:03 thought kernel: ristretto[14034]: segfault at 9d2 ip 00007f00af7131c8 sp 00007fff460ab448 error 4 in libgobject-2.0.so.0.8800.0[3a1c8,7f00af6e5000+37000] likely on CPU 5 (core 5, socket 0)
abr 16 11:39:03 thought kernel: Code: 8d 15 9c 3f 02 00 48 c1 e9 02 4c 8b 0c ca 4d 85 c9 74 07 41 f6 41 0e 20 75 36 48 8b 38 48 81 ff fc 03 00 00 76 3c 48 83 e7 fc <f6> 47 0e 10 74 05 4d 85 c9 75 4d 31 c0 c3 66 2e 0f 1f 84 00 00 00
abr 16 11:39:03 thought systemd-coredump[14483]: Process 14034 (ristretto) of user 1000 terminated abnormally with signal 11/SEGV, processing...
abr 16 11:39:03 thought systemd[1]: Started Process Core Dump (PID 14483/UID 0).
abr 16 11:39:03 thought systemd-coredump[14484]: [🡕] Process 14034 (ristretto) of user 1000 dumped core.

                                                 Stack trace of thread 14034:
                                                 #0  0x00007f00af7131c8 g_type_check_instance_is_a (libgobject-2.0.so.0 + 0x3a1c8)
                                                 #1  0x00007f00aee811bb gtk_accel_group_activate (libgtk-3.so.0 + 0x811bb)
                                                 #2  0x00007f00aee8704e gtk_accel_groups_activate (libgtk-3.so.0 + 0x8704e)
                                                 #3  0x00007f00af184bed gtk_window_activate_key (libgtk-3.so.0 + 0x384bed)
                                                 #4  0x0000560a71c53217 n/a (/usr/bin/ristretto + 0x1f217)
                                                 #5  0x00007f00aee73ca2 n/a (libgtk-3.so.0 + 0x73ca2)
                                                 #6  0x00007f00af70ba77 n/a (libgobject-2.0.so.0 + 0x32a77)
                                                 #7  0x00007f00af70bb89 g_signal_emit_valist (libgobject-2.0.so.0 + 0x32b89)
                                                 #8  0x00007f00af70bc44 g_signal_emit (libgobject-2.0.so.0 + 0x32c44)
                                                 #9  0x00007f00af16e77e n/a (libgtk-3.so.0 + 0x36e77e)
                                                 #10 0x00007f00aefef8a4 n/a (libgtk-3.so.0 + 0x1ef8a4)
                                                 #11 0x00007f00aeff058b gtk_main_do_event (libgtk-3.so.0 + 0x1f058b)
                                                 #12 0x00007f00af6131c7 n/a (libgdk-3.so.0 + 0x271c7)
                                                 #13 0x00007f00af64edd0 n/a (libgdk-3.so.0 + 0x62dd0)
                                                 #14 0x00007f00af969f4d n/a (libglib-2.0.so.0 + 0x5ef4d)
                                                 #15 0x00007f00af96b607 n/a (libglib-2.0.so.0 + 0x60607)
                                                 #16 0x00007f00af96b9c7 g_main_loop_run (libglib-2.0.so.0 + 0x609c7)
                                                 #17 0x00007f00aefeac4f gtk_main (libgtk-3.so.0 + 0x1eac4f)
                                                 #18 0x0000560a71c4243f n/a (/usr/bin/ristretto + 0xe43f)
                                                 #19 0x00007f00ae7de6c1 n/a (libc.so.6 + 0x276c1)
                                                 #20 0x00007f00ae7de7f9 __libc_start_main (libc.so.6 + 0x277f9)
                                                 #21 0x0000560a71c426d5 n/a (/usr/bin/ristretto + 0xe6d5)

                                                 Stack trace of thread 14084:
                                                 #0  0x00007f00ae8cf06d syscall (libc.so.6 + 0x11806d)
                                                 #1  0x00007f00adf2cbcb n/a (libglycin-2.so.0 + 0x32cbcb)
                                                 #2  0x00007f00addf6811 n/a (libglycin-2.so.0 + 0x1f6811)
                                                 #3  0x00007f00addf7588 n/a (libglycin-2.so.0 + 0x1f7588)
                                                 #4  0x00007f00adf2d570 n/a (libglycin-2.so.0 + 0x32d570)
                                                 #5  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #6  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14036:
                                                 #0  0x00007f00ae8cf06d syscall (libc.so.6 + 0x11806d)
                                                 #1  0x00007f00af997dee g_cond_wait (libglib-2.0.so.0 + 0x8cdee)
                                                 #2  0x00007f00af93122d n/a (libglib-2.0.so.0 + 0x2622d)
                                                 #3  0x00007f00af9a19c7 n/a (libglib-2.0.so.0 + 0x969c7)
                                                 #4  0x00007f00af9a14fc n/a (libglib-2.0.so.0 + 0x964fc)
                                                 #5  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #6  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14035:
                                                 #0  0x00007f00ae8cf06d syscall (libc.so.6 + 0x11806d)
                                                 #1  0x00007f00af997dee g_cond_wait (libglib-2.0.so.0 + 0x8cdee)
                                                 #2  0x00007f00af93122d n/a (libglib-2.0.so.0 + 0x2622d)
                                                 #3  0x00007f00af93129d g_async_queue_pop (libglib-2.0.so.0 + 0x2629d)
                                                 #4  0x00007f00ae53d51c n/a (libpangoft2-1.0.so.0 + 0xc51c)
                                                 #5  0x00007f00af9a14fc n/a (libglib-2.0.so.0 + 0x964fc)
                                                 #6  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #7  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14083:
                                                 #0  0x00007f00adde5aa6 n/a (libglycin-2.so.0 + 0x1e5aa6)
                                                 #1  0x00007f00adde5152 n/a (libglycin-2.so.0 + 0x1e5152)
                                                 #2  0x00007f00adde4f8c n/a (libglycin-2.so.0 + 0x1e4f8c)
                                                 #3  0x00007f00adf2d570 n/a (libglycin-2.so.0 + 0x32d570)
                                                 #4  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #5  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14470:
                                                 #0  0x00007f00ae855f32 n/a (libc.so.6 + 0x9ef32)
                                                 #1  0x00007f00ae84a39c n/a (libc.so.6 + 0x9339c)
                                                 #2  0x00007f00ae84a3e4 n/a (libc.so.6 + 0x933e4)
                                                 #3  0x00007f00ae8ba67f wait4 (libc.so.6 + 0x10367f)
                                                 #4  0x00007f00adf3346b n/a (libglycin-2.so.0 + 0x33346b)
                                                 #5  0x00007f00add1340a n/a (libglycin-2.so.0 + 0x11340a)
                                                 #6  0x00007f00add1c6e7 n/a (libglycin-2.so.0 + 0x11c6e7)
                                                 #7  0x00007f00adf2d570 n/a (libglycin-2.so.0 + 0x32d570)
                                                 #8  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #9  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14085:
                                                 #0  0x00007f00ae8cf06d syscall (libc.so.6 + 0x11806d)
                                                 #1  0x00007f00adf2cbcb n/a (libglycin-2.so.0 + 0x32cbcb)
                                                 #2  0x00007f00addf6811 n/a (libglycin-2.so.0 + 0x1f6811)
                                                 #3  0x00007f00addf7588 n/a (libglycin-2.so.0 + 0x1f7588)
                                                 #4  0x00007f00adf2d570 n/a (libglycin-2.so.0 + 0x32d570)
                                                 #5  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #6  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14477:
                                                 #0  0x00007f00ae8cf06d syscall (libc.so.6 + 0x11806d)
                                                 #1  0x00007f00af998bee g_cond_wait_until (libglib-2.0.so.0 + 0x8dbee)
                                                 #2  0x00007f00af9311f7 n/a (libglib-2.0.so.0 + 0x261f7)
                                                 #3  0x00007f00af93136f g_async_queue_timeout_pop (libglib-2.0.so.0 + 0x2636f)
                                                 #4  0x00007f00af9a2660 n/a (libglib-2.0.so.0 + 0x97660)
                                                 #5  0x00007f00af9a14fc n/a (libglib-2.0.so.0 + 0x964fc)
                                                 #6  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #7  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14038:
                                                 #0  0x00007f00ae8cf06d syscall (libc.so.6 + 0x11806d)
                                                 #1  0x00007f00af998bee g_cond_wait_until (libglib-2.0.so.0 + 0x8dbee)
                                                 #2  0x00007f00af9311f7 n/a (libglib-2.0.so.0 + 0x261f7)
                                                 #3  0x00007f00af93136f g_async_queue_timeout_pop (libglib-2.0.so.0 + 0x2636f)
                                                 #4  0x00007f00af9a2660 n/a (libglib-2.0.so.0 + 0x97660)
                                                 #5  0x00007f00af9a14fc n/a (libglib-2.0.so.0 + 0x964fc)
                                                 #6  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #7  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14039:
                                                 #0  0x00007f00ae855f32 n/a (libc.so.6 + 0x9ef32)
                                                 #1  0x00007f00ae84a39c n/a (libc.so.6 + 0x9339c)
                                                 #2  0x00007f00ae84a3e4 n/a (libc.so.6 + 0x933e4)
                                                 #3  0x00007f00ae8c42f6 ppoll (libc.so.6 + 0x10d2f6)
                                                 #4  0x00007f00af96b734 n/a (libglib-2.0.so.0 + 0x60734)
                                                 #5  0x00007f00af96b9c7 g_main_loop_run (libglib-2.0.so.0 + 0x609c7)
                                                 #6  0x00007f00af8516a4 n/a (libgio-2.0.so.0 + 0x1196a4)
                                                 #7  0x00007f00af9a14fc n/a (libglib-2.0.so.0 + 0x964fc)
                                                 #8  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #9  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14082:
                                                 #0  0x00007f00ae8cf06d syscall (libc.so.6 + 0x11806d)
                                                 #1  0x00007f00ade9b1a5 n/a (libglycin-2.so.0 + 0x29b1a5)
                                                 #2  0x00007f00addde029 n/a (libglycin-2.so.0 + 0x1de029)
                                                 #3  0x00007f00adddc619 n/a (libglycin-2.so.0 + 0x1dc619)
                                                 #4  0x00007f00adddc521 n/a (libglycin-2.so.0 + 0x1dc521)
                                                 #5  0x00007f00adf2d570 n/a (libglycin-2.so.0 + 0x32d570)
                                                 #6  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #7  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14089:
                                                 #0  0x00007f00ae855f32 n/a (libc.so.6 + 0x9ef32)
                                                 #1  0x00007f00ae84a39c n/a (libc.so.6 + 0x9339c)
                                                 #2  0x00007f00ae84a3e4 n/a (libc.so.6 + 0x933e4)
                                                 #3  0x00007f00ae8ba67f wait4 (libc.so.6 + 0x10367f)
                                                 #4  0x00007f00adf3346b n/a (libglycin-2.so.0 + 0x33346b)
                                                 #5  0x00007f00add1340a n/a (libglycin-2.so.0 + 0x11340a)
                                                 #6  0x00007f00add1c6e7 n/a (libglycin-2.so.0 + 0x11c6e7)
                                                 #7  0x00007f00adf2d570 n/a (libglycin-2.so.0 + 0x32d570)
                                                 #8  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #9  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14478:
                                                 #0  0x00007f00ae8cf06d syscall (libc.so.6 + 0x11806d)
                                                 #1  0x00007f00af998bee g_cond_wait_until (libglib-2.0.so.0 + 0x8dbee)
                                                 #2  0x00007f00af9311f7 n/a (libglib-2.0.so.0 + 0x261f7)
                                                 #3  0x00007f00af93136f g_async_queue_timeout_pop (libglib-2.0.so.0 + 0x2636f)
                                                 #4  0x00007f00af9a2660 n/a (libglib-2.0.so.0 + 0x97660)
                                                 #5  0x00007f00af9a14fc n/a (libglib-2.0.so.0 + 0x964fc)
                                                 #6  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #7  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14040:
                                                 #0  0x00007f00ae855f32 n/a (libc.so.6 + 0x9ef32)
                                                 #1  0x00007f00ae84a39c n/a (libc.so.6 + 0x9339c)
                                                 #2  0x00007f00ae84a3e4 n/a (libc.so.6 + 0x933e4)
                                                 #3  0x00007f00ae8c42f6 ppoll (libc.so.6 + 0x10d2f6)
                                                 #4  0x00007f00af96b734 n/a (libglib-2.0.so.0 + 0x60734)
                                                 #5  0x00007f00af96b815 g_main_context_iteration (libglib-2.0.so.0 + 0x60815)
                                                 #6  0x00007f00afa7c7be n/a (libdconfsettings.so + 0x77be)
                                                 #7  0x00007f00af9a14fc n/a (libglib-2.0.so.0 + 0x964fc)
                                                 #8  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #9  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)

                                                 Stack trace of thread 14037:
                                                 #0  0x00007f00ae855f32 n/a (libc.so.6 + 0x9ef32)
                                                 #1  0x00007f00ae84a39c n/a (libc.so.6 + 0x9339c)
                                                 #2  0x00007f00ae84a3e4 n/a (libc.so.6 + 0x933e4)
                                                 #3  0x00007f00ae8c42f6 ppoll (libc.so.6 + 0x10d2f6)
                                                 #4  0x00007f00af96b734 n/a (libglib-2.0.so.0 + 0x60734)
                                                 #5  0x00007f00af96b815 g_main_context_iteration (libglib-2.0.so.0 + 0x60815)
                                                 #6  0x00007f00af96b862 n/a (libglib-2.0.so.0 + 0x60862)
                                                 #7  0x00007f00af9a14fc n/a (libglib-2.0.so.0 + 0x964fc)
                                                 #8  0x00007f00ae84d97a n/a (libc.so.6 + 0x9697a)
                                                 #9  0x00007f00ae8d12bc n/a (libc.so.6 + 0x11a2bc)
                                                 ELF object binary architecture: AMD x86-64

Video showing what happens:

Edited by Manu Barrio Linares