Typing in text entry widgets can cause GTK4 applications to crash with a segmentation fault
Testing with my desktop machine (also on my laptop, so not specific to one GPU) on Fedora 39's Wayland GNOME 45 session, with GNOME Calendar nightly flatpak (which is built against GTK 4.13.2):
flatpak run org.gnome.Calendar.Devel
- Click on an empty cell in the month view, the event creation popover appears
- Rapidly type a few words (or gibberish) in the event name/title's text entry widget, and you will get the crash below
Alternate reproduction method: you can also get the same crash by clicking an existing event, entering the event editing dialog, and typing into the event title's field there; not specific to the popover.
The crash:
Thread 1 "gnome-calendar" received signal SIGSEGV, Segmentation fault.
0x00007ffff716aad4 in g_variant_is_trusted () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt full
#0 0x00007ffff716aad4 in g_variant_is_trusted () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007ffff7166a1a in g_variant_builder_add_value () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff716895c in g_variant_valist_new () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff7168ec0 in g_variant_new_va () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007ffff7168ff8 in g_variant_new () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007ffff777e261 in emit_text_changed () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#6 0x00007ffff707043a in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007ffff7084d09 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00007ffff7086421 in signal_emit_valist_unlocked () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9 0x00007ffff708c3f1 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007ffff708c4b3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffff765e87d in gtk_text_enter_text () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#12 0x00007ffff765e9a4 in gtk_text_commit_cb () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#13 0x00007ffff70736fb in g_cclosure_marshal_VOID__STRINGv () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff7070652 in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff70864df in signal_emit_valist_unlocked () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff708c6c8 in g_signal_emit_by_name () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ffff707043a in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff708499c in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007ffff7086421 in signal_emit_valist_unlocked () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007ffff708c6c8 in g_signal_emit_by_name () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007ffff77781bb in text_input_done () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#22 0x00007ffff5fd4056 in ffi_call_unix64 () at /usr/lib/x86_64-linux-gnu/libffi.so.8
#23 0x00007ffff5fd2b5d in ffi_call_int () at /usr/lib/x86_64-linux-gnu/libffi.so.8
#24 0x00007ffff5fd3313 in ffi_call () at /usr/lib/x86_64-linux-gnu/libffi.so.8
#25 0x00007ffff6180d5b in wl_closure_invoke () at /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#26 0x00007ffff617dc1c in dispatch_event () at /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#27 0x00007ffff617df02 in dispatch_queue () at /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#28 0x00007ffff617e1d8 in wl_display_dispatch_queue_pending () at /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#29 0x00007ffff617e240 in wl_display_dispatch_pending () at /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#30 0x00007ffff7859617 in _gdk_wayland_display_queue_events () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#31 0x00007ffff789e8a7 in gdk_display_get_event () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#32 0x00007ffff7859286 in gdk_event_source_dispatch () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#33 0x00007ffff711ae57 in g_main_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007ffff711cf67 in g_main_context_iterate_unlocked.isra () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007ffff711d623 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007ffff7300afd in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#37 0x0000555555581285 in main ()