[gedit] Fix crash on quit due to use-after-free (bgo #640215)

Daniel Williams dcbw at fedoraproject.org
Fri Jan 21 19:33:31 UTC 2011


commit c8c24f33339e466db9644bfbcc7c18b8e848455d
Author: Dan Williams <dcbw at redhat.com>
Date:   Fri Jan 21 13:34:07 2011 -0600

    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 deletions(-)
---
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 <dcbw at redhat.com> - 2:2.91.5-4
+- Fix crash on quit due to use-after-free (bgo #640215)
+
 * Fri Jan 14 2011 Matthias Clasen <mclasen at redhat.com> - 2:2.91.5-3
 - Clean up python dependencies
 


More information about the scm-commits mailing list