[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