Fix a GDBus segfault
This commit is contained in:
parent
bf98447bc5
commit
ce1e8c81d5
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user