[gnome-desktop/f14/master] - Fix possible crashers

Bastien Nocera hadess at fedoraproject.org
Thu Nov 11 13:58:41 UTC 2010


commit 71f6719ae255e12367f090347e396658e1b6e321
Author: Bastien Nocera <hadess at hadess.net>
Date:   Thu Nov 11 13:58:38 2010 +0000

    - Fix possible crashers

 ...e-double-free-when-destroying-private-win.patch |   38 ++++++++++++++++++++
 ...29168-Don-t-read-past-the-end-of-a-string.patch |   26 +++++++++++++
 gnome-desktop.spec                                 |   11 +++++-
 3 files changed, 74 insertions(+), 1 deletions(-)
---
diff --git a/0001-Fix-possible-double-free-when-destroying-private-win.patch b/0001-Fix-possible-double-free-when-destroying-private-win.patch
new file mode 100644
index 0000000..405bc96
--- /dev/null
+++ b/0001-Fix-possible-double-free-when-destroying-private-win.patch
@@ -0,0 +1,38 @@
+From 7e967de7dff160d7302b1ab66db3f9054b8373b3 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess at hadess.net>
+Date: Thu, 11 Nov 2010 13:21:21 +0000
+Subject: [PATCH] Fix possible double-free when destroying private windows
+
+This could cause free'ing random data when the members of ->windows
+were destroyed, but ->windows itself wasn't. As it was != NULL, we'd
+be free memory that wouldn't belong to us anymore.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=634534
+---
+ libgnome-desktop/gnome-rr-labeler.c |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/libgnome-desktop/gnome-rr-labeler.c b/libgnome-desktop/gnome-rr-labeler.c
+index 1de4569..ebf9905 100644
+--- a/libgnome-desktop/gnome-rr-labeler.c
++++ b/libgnome-desktop/gnome-rr-labeler.c
+@@ -411,11 +411,16 @@ gnome_rr_labeler_hide (GnomeRRLabeler *labeler)
+ 
+ 	g_return_if_fail (GNOME_IS_RR_LABELER (labeler));
+ 
++	if (labeler->windows == NULL)
++		return;
++
+ 	for (i = 0; i < labeler->num_outputs; i++)
+ 		if (labeler->windows[i] != NULL) {
+ 			gtk_widget_destroy (labeler->windows[i]);
+ 			labeler->windows[i] = NULL;
+ 		}
++	g_free (labeler->windows);
++	labeler->windows = NULL;
+ }
+ 
+ void
+-- 
+1.7.3.2
+
diff --git a/0001-bgo-629168-Don-t-read-past-the-end-of-a-string.patch b/0001-bgo-629168-Don-t-read-past-the-end-of-a-string.patch
new file mode 100644
index 0000000..0c05f30
--- /dev/null
+++ b/0001-bgo-629168-Don-t-read-past-the-end-of-a-string.patch
@@ -0,0 +1,26 @@
+From 3fa03455aa799ce882767c94152ce4d9d4e70377 Mon Sep 17 00:00:00 2001
+From: Federico Mena Quintero <federico at novell.com>
+Date: Tue, 26 Oct 2010 18:18:03 -0500
+Subject: [PATCH] bgo#629168 - Don't read past the end of a string
+
+Signed-off-by: Federico Mena Quintero <federico at novell.com>
+---
+ libgnome-desktop/display-name.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libgnome-desktop/display-name.c b/libgnome-desktop/display-name.c
+index e596da0..9c99d86 100644
+--- a/libgnome-desktop/display-name.c
++++ b/libgnome-desktop/display-name.c
+@@ -209,7 +209,7 @@ read_pnp_ids (void)
+         for (i = 0; lines[i]; i++)
+         {
+              line = lines[i];
+-             if (line[3] == '\t')
++             if (line[0] && line[1] && line[2] && line[3] == '\t' && line[4])
+              {
+                  code = line;
+                  line[3] = '\0';
+-- 
+1.7.3.2
+
diff --git a/gnome-desktop.spec b/gnome-desktop.spec
index 260d0fb..b206367 100644
--- a/gnome-desktop.spec
+++ b/gnome-desktop.spec
@@ -12,7 +12,7 @@
 Summary: Shared code among gnome-panel, gnome-session, nautilus, etc
 Name: gnome-desktop
 Version: 2.32.0
-Release: 1%{?dist}
+Release: 2%{?dist}
 URL: http://www.gnome.org
 #VCS: git:git://git.gnome.org/gnome-desktop
 Source0: http://download.gnome.org/sources/gnome-desktop/2.32/%{name}-%{version}.tar.bz2
@@ -45,6 +45,10 @@ BuildRequires: gettext
 BuildRequires: gtk-doc >= %{gtk_doc_version}
 BuildRequires: automake autoconf libtool intltool
 
+# Upstream fixes
+Patch0: 0001-bgo-629168-Don-t-read-past-the-end-of-a-string.patch
+Patch1: 0001-Fix-possible-double-free-when-destroying-private-win.patch
+
 %description
 
 The gnome-desktop package contains an internal library
@@ -72,6 +76,8 @@ libgnomedesktop.
 
 %prep
 %setup -q
+%patch0 -p1 -b .pnp
+%patch1 -p1 -b .double-free
 
 %build
 %configure --with-gnome-distributor="Red Hat, Inc" \
@@ -114,6 +120,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
 %doc %{_datadir}/gtk-doc
 
 %changelog
+* Thu Nov 11 2010 Bastien Nocera <bnocera at redhat.com> 2.32.0-2
+- Fix possible crashers
+
 * Wed Sep 29 2010 Matthias Clasen <mclasen at redhat.com> 2.32.0-1
 - Update to 2.32.0
 


More information about the scm-commits mailing list