[gnome-initial-setup/f21] Fix 1116478

Matthias Clasen mclasen at fedoraproject.org
Thu Jul 24 21:27:42 UTC 2014


commit bb41d38feae607b237d6cc90289d554e50d60156
Author: Matthias Clasen <mclasen at redhat.com>
Date:   Thu Jul 24 17:27:17 2014 -0400

    Fix 1116478

 ...ssword-Clean-up-signal-handler-in-dispose.patch |   49 ++++++++++++++++++++
 gnome-initial-setup.spec                           |    9 +++-
 2 files changed, 57 insertions(+), 1 deletions(-)
---
diff --git a/0001-password-Clean-up-signal-handler-in-dispose.patch b/0001-password-Clean-up-signal-handler-in-dispose.patch
new file mode 100644
index 0000000..9150c3a
--- /dev/null
+++ b/0001-password-Clean-up-signal-handler-in-dispose.patch
@@ -0,0 +1,49 @@
+From 03c1e4338e7bb58c57370c0e32c937207494fa8d Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at redhat.com>
+Date: Thu, 24 Jul 2014 17:17:40 -0400
+Subject: [PATCH] password: Clean up signal handler in dispose
+
+This is the only place where we connect to a driver signal,
+and we never clean up the handler, so it is left dangling
+when the pages get reconstructed (since the driver object
+survives that). This might explain the mysterious memory
+corruption crashes that various people have been seeing,
+which usually involved this signal handler.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=733555
+https://bugzilla.gnome.org/show_bug.cgi?id=732525
+---
+ gnome-initial-setup/pages/password/gis-password-page.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/gnome-initial-setup/pages/password/gis-password-page.c b/gnome-initial-setup/pages/password/gis-password-page.c
+index 20144fd..7ab9662 100644
+--- a/gnome-initial-setup/pages/password/gis-password-page.c
++++ b/gnome-initial-setup/pages/password/gis-password-page.c
+@@ -238,6 +238,15 @@ gis_password_page_constructed (GObject *object)
+ }
+ 
+ static void
++gis_password_page_dispose (GObject *object)
++{
++  g_signal_handlers_disconnect_by_func (GIS_PAGE (object)->driver,
++                                        username_changed, object);
++
++  G_OBJECT_CLASS (gis_password_page_parent_class)->dispose (object);
++}
++
++static void
+ gis_password_page_locale_changed (GisPage *page)
+ {
+   gis_page_set_title (GIS_PAGE (page), _("Password"));
+@@ -261,6 +270,7 @@ gis_password_page_class_init (GisPasswordPageClass *klass)
+   page_class->locale_changed = gis_password_page_locale_changed;
+   page_class->save_data = gis_password_page_save_data;
+   object_class->constructed = gis_password_page_constructed;
++  object_class->dispose = gis_password_page_dispose;
+ }
+ 
+ static void
+-- 
+2.0.1
+
diff --git a/gnome-initial-setup.spec b/gnome-initial-setup.spec
index e0a49d6..101fa15 100644
--- a/gnome-initial-setup.spec
+++ b/gnome-initial-setup.spec
@@ -1,6 +1,6 @@
 Name:           gnome-initial-setup
 Version:        3.12.1
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Bootstrapping your OS
 
 License:        GPLv2+
@@ -11,6 +11,9 @@ Source0:        http://download.gnome.org/sources/%{name}/3.12/%{name}-%{version
 # https://bugzilla.gnome.org/show_bug.cgi?id=687957
 Patch0: yelp-fixes.patch
 
+# fix a memory corruption crash
+Patch1: 0001-password-Clean-up-signal-handler-in-dispose.patch
+
 %global nm_version 0.9.6.4
 %global glib_required_version 2.36.0
 %global gtk_required_version 3.7.11
@@ -66,6 +69,7 @@ you through configuring it. It is integrated with gdm.
 %prep
 %setup -q
 %patch0 -p1 -b .yelp-fixes
+%patch1 -p1 
 
 %build
 %configure
@@ -104,6 +108,9 @@ useradd -rM -d /run/gnome-initial-setup/ -s /sbin/nologin %{name} &>/dev/null ||
 %{_datadir}/polkit-1/rules.d/20-gnome-initial-setup.rules
 
 %changelog
+* Thu Jul 24 2014 Matthias Clasen <mclasen at redhat.com> - 3.12.1-3
+- Fix a memory corruption crash (#1116478)
+
 * Sat Jun 07 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.12.1-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
 


More information about the scm-commits mailing list