[gnome-desktop3/f15/master] Prevent segfaults in gnome-rr users on randr-less displays
Matthias Clasen
mclasen at fedoraproject.org
Mon May 2 18:16:40 UTC 2011
commit 1945851fd3e174cb6acdb6e274836d80a973f84c
Author: Matthias Clasen <mclasen at redhat.com>
Date: Mon May 2 14:16:17 2011 -0400
Prevent segfaults in gnome-rr users on randr-less displays
0001-Don-t-fall-over-if-RANDR-is-missing.patch | 30 ++++++++++++++++++++++++
gnome-desktop3.spec | 10 +++++++-
2 files changed, 39 insertions(+), 1 deletions(-)
---
diff --git a/0001-Don-t-fall-over-if-RANDR-is-missing.patch b/0001-Don-t-fall-over-if-RANDR-is-missing.patch
new file mode 100644
index 0000000..5402a20
--- /dev/null
+++ b/0001-Don-t-fall-over-if-RANDR-is-missing.patch
@@ -0,0 +1,30 @@
+From aa93854f2ba6b0f72f1bdff9699b5724a72c89c9 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at redhat.com>
+Date: Sat, 30 Apr 2011 20:48:03 -0400
+Subject: [PATCH] Don't fall over if RANDR is missing
+
+When RANDR is not present, the screen object never gets an info,
+and since screen_info_free asserts, we must not call it unconditionally
+in finalize.
+This fixes https://bugzilla.gnome.org/show_bug.cgi?id=649053
+---
+ libgnome-desktop/gnome-rr.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/libgnome-desktop/gnome-rr.c b/libgnome-desktop/gnome-rr.c
+index 4a9d98e..eb3d735 100644
+--- a/libgnome-desktop/gnome-rr.c
++++ b/libgnome-desktop/gnome-rr.c
+@@ -748,7 +748,8 @@ gnome_rr_screen_finalize (GObject *gobject)
+
+ gdk_window_remove_filter (screen->priv->gdk_root, screen_on_event, screen);
+
+- screen_info_free (screen->priv->info);
++ if (screen->priv->info)
++ screen_info_free (screen->priv->info);
+
+ G_OBJECT_CLASS (gnome_rr_screen_parent_class)->finalize (gobject);
+ }
+--
+1.7.5
+
diff --git a/gnome-desktop3.spec b/gnome-desktop3.spec
index 5675433..cda15c6 100644
--- a/gnome-desktop3.spec
+++ b/gnome-desktop3.spec
@@ -10,9 +10,13 @@
Summary: Shared code among gnome-panel, gnome-session, nautilus, etc
Name: gnome-desktop3
Version: 3.0.1
-Release: 1%{?dist}
+Release: 2%{?dist}
URL: http://www.gnome.org
Source0: http://download.gnome.org/sources/gnome-desktop/3.0/gnome-desktop-%{version}.tar.bz2
+
+# Upstream fix
+Patch0: 0001-Don-t-fall-over-if-RANDR-is-missing.patch
+
License: GPLv2+ and LGPLv2+
Group: System Environment/Libraries
@@ -67,6 +71,7 @@ libgnomedesktop.
%prep
%setup -q -n gnome-desktop-%{version}
+%patch0 -p1 -b .randr-missing
%build
%configure --with-pnp-ids-path="/usr/share/hwdata/pnp.ids" \
@@ -104,6 +109,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
%doc %{_datadir}/gtk-doc/html/gnome-desktop3/
%changelog
+* Mon May 2 2011 Matthias Clasen <mclasen at redhat.com> - 3.0.1-2
+- Prevent segfaults in gnome-rr users on randr-less displays
+
* Tue Apr 26 2011 Matthias Clasen <mclasen at redhat.com> - 3.0.1-1
- Update to 3.0.1
More information about the scm-commits
mailing list