File glade-CVE-2020-36774.patch of Package glade
commit 7acdd3c6f6934f47b8974ebc2190a59ea5d2ed17 (7acdd3c6f6934f47b8974ebc2190a59ea5d2ed17_CVE-2020-36774)
Author: Juan Pablo Ugarte <juanpablougarte@gmail.com>
Date: Fri Oct 2 16:08:23 2020 -0300
GladeGtkBox: fix glade_gtk_box_post_create
Some widgets with contruct properties like GtkMessageDialog get
rebuilt right after they are created on project loading so we need
to check glade_project_is_loading() intead of GLADE_CREATE_LOAD
and use the object ad the connect data to make sure it gets disconected
if it was the object being rebuilt
Fix issue #479 "Glade 3.36.0 segfaults when opening a file"
diff -Nura glade-3.22.1/plugins/gtk+/glade-gtk-box.c glade-3.22.1_new/plugins/gtk+/glade-gtk-box.c
--- glade-3.22.1/plugins/gtk+/glade-gtk-box.c 2018-03-25 00:30:20.000000000 +0800
+++ glade-3.22.1_new/plugins/gtk+/glade-gtk-box.c 2024-03-01 13:47:22.439905378 +0800
@@ -57,9 +57,9 @@
}
static void
-glade_gtk_box_parse_finished (GladeProject * project, GladeWidget *gbox)
+glade_gtk_box_parse_finished (GladeProject *project, GObject *box)
{
- GObject *box = glade_widget_get_object (gbox);
+ GladeWidget *gbox = glade_widget_get_from_gobject (box);
glade_widget_property_set (gbox, "use-center-child",
gtk_box_get_center_widget (GTK_BOX (box)) != NULL);
@@ -85,11 +85,11 @@
g_signal_connect (G_OBJECT (gwidget), "configure-end",
G_CALLBACK (glade_gtk_box_configure_end), container);
- if (reason == GLADE_CREATE_LOAD)
+ if (glade_project_is_loading (project))
{
g_signal_connect_object (project, "parse-finished",
G_CALLBACK (glade_gtk_box_parse_finished),
- gwidget, 0);
+ container, 0);
}
}