Fix a GDBus segfault

This commit is contained in:
Matthias Clasen 2011-11-23 09:39:14 -05:00
parent bf98447bc5
commit ce1e8c81d5
2 changed files with 62 additions and 1 deletions

View File

@ -0,0 +1,55 @@
From 968ef5f5ffbe5e694bae3052bea34e9b9d1aef35 Mon Sep 17 00:00:00 2001
From: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date: Wed, 23 Nov 2011 11:20:15 +0000
Subject: [PATCH 1/2] GDBusWorker: continue_writing: initialize
flush_async_data if closing
This was a regression in commit f41178c6c: flush_async_data wasn't
necessarily NULL in the "don't flush" case.
Also move initialization of these variables up so that it's
unconditional, since that's easier to verify than checking
that each branch gets it right.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=664617
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
---
gio/gdbusprivate.c | 8 +++-----
1 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
index 178214e..5b3b77d 100644
--- a/gio/gdbusprivate.c
+++ b/gio/gdbusprivate.c
@@ -1441,6 +1441,9 @@ continue_writing (GDBusWorker *worker)
g_mutex_lock (&worker->write_lock);
+ data = NULL;
+ flush_async_data = NULL;
+
/* if we want to close the connection, that takes precedence */
if (worker->pending_close_attempts != NULL)
{
@@ -1450,7 +1453,6 @@ continue_writing (GDBusWorker *worker)
g_io_stream_close_async (worker->stream, G_PRIORITY_DEFAULT,
NULL, iostream_close_cb,
_g_dbus_worker_ref (worker));
- data = NULL;
}
else
{
@@ -1463,10 +1465,6 @@ continue_writing (GDBusWorker *worker)
if (data != NULL)
worker->output_pending = PENDING_WRITE;
}
- else
- {
- data = NULL;
- }
}
g_mutex_unlock (&worker->write_lock);
--
1.7.7.1

View File

@ -3,13 +3,15 @@
Summary: A library of handy utility functions
Name: glib2
Version: 2.31.2
Release: 1%{?dist}
Release: 2%{?dist}
License: LGPLv2+
Group: System Environment/Libraries
URL: http://www.gtk.org
#VCS: git:git://git.gnome.org/glib
Source: http://download.gnome.org/sources/glib/2.31/glib-%{version}.tar.xz
# upstream fix
Patch0: 0001-GDBusWorker-continue_writing-initialize-flush_async_.patch
BuildRequires: pkgconfig
BuildRequires: gamin-devel
BuildRequires: gettext
@ -57,6 +59,7 @@ The glib2-static package includes static libraries of the GLib library.
%prep
%setup -q -n glib-%{version}
%patch0 -p1
%build
# Support builds of both git snapshots and tarballs packed with autogoo
@ -159,6 +162,9 @@ gio-querymodules-%{__isa_bits} %{_libdir}/gio/modules
%changelog
* Wed Nov 23 2011 Matthias Clasen <mclasen@redhat.com> - 2.31.2-2
- Fix a GDBus regression leading to segfaults
* Mon Nov 21 2011 Matthias Clasen <mclasen@redhat.com> - 2.31.2-1
- Update to 2.31.2