From c8c24f33339e466db9644bfbcc7c18b8e848455d Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 21 Jan 2011 13:34:07 -0600 Subject: [PATCH] Fix crash on quit due to use-after-free (bgo #640215) --- gedit-deactivate-extensions-on-quit.patch | 39 +++++++++++++++++++++++ gedit.spec | 11 ++++++- 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 gedit-deactivate-extensions-on-quit.patch diff --git a/gedit-deactivate-extensions-on-quit.patch b/gedit-deactivate-extensions-on-quit.patch new file mode 100644 index 0000000..bfbd4d1 --- /dev/null +++ b/gedit-deactivate-extensions-on-quit.patch @@ -0,0 +1,39 @@ +diff -up gedit-2.91.5/gedit/gedit-app.c.blah gedit-2.91.5/gedit/gedit-app.c +--- gedit-2.91.5/gedit/gedit-app.c.blah 2011-01-21 13:17:49.614004002 -0600 ++++ gedit-2.91.5/gedit/gedit-app.c 2011-01-21 13:18:23.907004002 -0600 +@@ -123,8 +123,7 @@ gedit_app_dispose (GObject *object) + + if (app->priv->extensions != NULL) + { +- /* Note that unreffing the extensions will automatically remove +- all extensions which in turn will deactivate the extension */ ++ peas_extension_set_call (app->priv->extensions, "deactivate"); + g_object_unref (app->priv->extensions); + app->priv->extensions = NULL; + } +diff -up gedit-2.91.5/gedit/gedit-view.c.blah gedit-2.91.5/gedit/gedit-view.c +--- gedit-2.91.5/gedit/gedit-view.c.blah 2011-01-21 13:17:43.309003997 -0600 ++++ gedit-2.91.5/gedit/gedit-view.c 2011-01-21 13:18:28.103004003 -0600 +@@ -267,8 +267,7 @@ gedit_view_destroy (GtkWidget *widget) + + if (view->priv->extensions != NULL) + { +- /* Note that unreffing the extensions will automatically remove +- all extensions which in turn will deactivate the extension */ ++ peas_extension_set_call (view->priv->extensions, "deactivate"); + g_object_unref (view->priv->extensions); + view->priv->extensions = NULL; + } +diff -up gedit-2.91.5/gedit/gedit-window.c.blah gedit-2.91.5/gedit/gedit-window.c +--- gedit-2.91.5/gedit/gedit-window.c.blah 2011-01-21 13:17:38.512004003 -0600 ++++ gedit-2.91.5/gedit/gedit-window.c 2011-01-21 13:18:31.763004003 -0600 +@@ -266,8 +266,7 @@ gedit_window_dispose (GObject *object) + save_window_state (GTK_WIDGET (window)); + save_panels_state (window); + +- /* Note that unreffing the extensions will automatically remove +- all extensions which in turn will deactivate the extension */ ++ peas_extension_set_call (window->priv->extensions, "deactivate"); + g_object_unref (window->priv->extensions); + + peas_engine_garbage_collect (PEAS_ENGINE (gedit_plugins_engine_get_default ())); diff --git a/gedit.spec b/gedit.spec index b7f23c7..ecc189f 100644 --- a/gedit.spec +++ b/gedit.spec @@ -11,7 +11,7 @@ Summary: Text editor for the GNOME desktop Name: gedit Epoch: 2 Version: 2.91.5 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and GFDL Group: Applications/Editors #VCS: git:git://git.gnome.org/gedit @@ -29,6 +29,9 @@ Requires(postun): desktop-file-utils >= %{desktop_file_utils_version} Patch1: gedit-2.13.90-libdir.patch %endif +# http://bugzilla.gnome.org/show_bug.cgi?id=640215 +Patch2: gedit-deactivate-extensions-on-quit.patch + # http://bugzilla.gnome.org/show_bug.cgi?id=587053 #Patch3: print-to-file.patch @@ -90,6 +93,9 @@ Install gedit-devel if you want to write plugins for gedit. %patch1 -p1 -b .libdir %endif +# bgo #640215 +%patch2 -p1 -b .deactivate-extensions + #%patch3 -p1 -b .print-to-file autoreconf -i -f @@ -163,6 +169,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas %{_datadir}/gtk-doc %changelog +* Fri Jan 21 2011 Dan Williams - 2:2.91.5-4 +- Fix crash on quit due to use-after-free (bgo #640215) + * Fri Jan 14 2011 Matthias Clasen - 2:2.91.5-3 - Clean up python dependencies