Possible use-after-free under gtk_scrolled_window_update_use_indicators()
This is filled downstream at:
https://bugzilla.redhat.com/show_bug.cgi?id=2178615
Apps can crash with gtk4-4.10.0 after opening gnome-software's About dialog and closing it. From the https://bugzilla.redhat.com/show_bug.cgi?id=2178615#c15 :
I tried to reproduce this under rawhide with
gnome-software-44~rc-1.fc39.x86_64
gtk4-4.10.0-4.fc39.x86_64
libadwaita-1.3~rc-1.fc39.x86_64
and when I open Menu->About and then closing the about dialog and running from a second terminal:
gsettings set org.gnome.desktop.interface overlay-scrolling false
gsettings set org.gnome.desktop.interface overlay-scrolling true
then the gnome-software terminal shows:
13:51:07:260 Gtk gtk_widget_get_settings: assertion 'GTK_IS_WIDGET (widget)' failed
13:51:07:260 GLib-GObject g_object_get: assertion 'G_IS_OBJECT (object)' failed
When I open Menu->Software Repositories and close them, then immediately after closing the window I see on the terminal:
13:53:28:844 Gtk gtk_widget_dispose_template: assertion 'template != NULL' failed
13:53:28:845 Gtk Finalizing GsReposSection 0x55c44c49d940, but it still has children left:
13:53:28:845 Gtk - GtkBox 0x55c44ddd28c0
13:53:28:845 Gtk gtk_widget_dispose_template: assertion 'template != NULL' failed
13:53:28:845 Gtk Finalizing GsReposSection 0x55c44d8453a0, but it still has children left:
13:53:28:845 Gtk - GtkBox 0x55c44dbad8e0
13:53:28:845 Gtk gtk_widget_dispose_template: assertion 'template != NULL' failed
13:53:28:845 Gtk Finalizing GsReposSection 0x55c44b603160, but it still has children left:
13:53:28:845 Gtk - GtkBox 0x55c44dca6300
13:53:28:845 Gtk gtk_widget_dispose_template: assertion 'template != NULL' failed
13:53:28:845 Gtk Finalizing GsReposSection 0x55c44d809140, but it still has children left:
13:53:28:845 Gtk - GtkBox 0x55c44d809ae0
which is something I do not see with gtk4-4.8.2-2.fc37.x86_64.
Backtrace:
#0 gtk_widget_get_settings at ../gtk/gtkwidget.c:7160
#1 gtk_scrolled_window_update_use_indicators at ../gtk/gtkscrolledwindow.c:3796
#3 signal_emit_unlocked_R.isra.0 at ../gobject/gsignal.c:3802
#7 g_object_notify_by_spec_internal at ../gobject/gobject.c:1552
#8 g_object_notify_by_pspec at ../gobject/gobject.c:1658
#9 g_cclosure_marshal_VOID__STRINGv at ../gobject/gmarshal.c:1462
#10 _g_closure_invoke_va at ../gobject/gclosure.c:895
#13 g_cclosure_marshal_VOID__STRINGv at ../gobject/gmarshal.c:1462
#14 _g_closure_invoke_va at ../gobject/gclosure.c:895
#17 g_settings_real_change_event at ../gio/gsettings.c:392
#18 _g_cclosure_marshal_BOOLEAN__POINTER_INTv at ../gio/gmarshal-internal.c:428
#19 _g_closure_invoke_va at ../gobject/gclosure.c:895
#22 settings_backend_path_changed at ../gio/gsettings.c:467
#24 g_settings_backend_invoke_closure at ../gio/gsettingsbackend.c:275
#28 g_main_context_iterate.isra.0 at ../glib/gmain.c:4276
#29 g_main_context_iteration at ../glib/gmain.c:4343
#30 g_application_run at ../gio/gapplication.c:2573