Add patch fixing USB redirection related race/crash

remotes/origin/f21
Christophe Fergeau 2015-04-02 16:15:40 +02:00
parent fd6b0a33fe
commit dbf53beb39
2 changed files with 38 additions and 1 deletions

View File

@ -0,0 +1,31 @@
From e3932bfebbfec7637f3d03d90e8f9b75e3223236 Mon Sep 17 00:00:00 2001
From: Pavel Grunt <pgrunt@redhat.com>
Date: Wed, 11 Mar 2015 16:31:39 +0100
Subject: [spice-gtk] channel-usbredir: Do not stop event listening if
SpiceSession does not exist
Avoids Segfault when closing the connection just after the usb device redirection.
---
gtk/channel-usbredir.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/gtk/channel-usbredir.c b/gtk/channel-usbredir.c
index b1a91fb..d974434 100644
--- a/gtk/channel-usbredir.c
+++ b/gtk/channel-usbredir.c
@@ -419,9 +419,12 @@ void spice_usbredir_channel_disconnect_device(SpiceUsbredirChannel *channel)
* usbredirhost_set_device NULL will interrupt the
* libusb_handle_events call in the thread.
*/
- spice_usb_device_manager_stop_event_listening(
- spice_usb_device_manager_get(
- spice_channel_get_session(SPICE_CHANNEL(channel)), NULL));
+ {
+ SpiceSession *session = spice_channel_get_session(SPICE_CHANNEL(channel));
+ if (session != NULL)
+ spice_usb_device_manager_stop_event_listening(
+ spice_usb_device_manager_get(session, NULL));
+ }
/* This also closes the libusb handle we passed from open_device */
usbredirhost_set_device(priv->host, NULL);
libusb_unref_device(priv->device);

View File

@ -7,7 +7,7 @@
Name: spice-gtk Name: spice-gtk
Version: 0.27 Version: 0.27
Release: 5%{?dist} Release: 6%{?dist}
Summary: A GTK+ widget for SPICE clients Summary: A GTK+ widget for SPICE clients
Group: System Environment/Libraries Group: System Environment/Libraries
@ -25,6 +25,7 @@ Patch0007: 0007-usbredir-prevent-crash-when-calling-without-host.patch
Patch0008: 0008-channel-delay-event-report-to-after-coroutine-exit.patch Patch0008: 0008-channel-delay-event-report-to-after-coroutine-exit.patch
Patch0009: 0009-channel-reset-tls-state-when-client-calls-connect.patch Patch0009: 0009-channel-reset-tls-state-when-client-calls-connect.patch
Patch0010: 0010-channel-reset-connection-state-on-error.patch Patch0010: 0010-channel-reset-connection-state-on-error.patch
Patch0011: 0011-channel-usbredir-Do-not-stop-event-listening-if-Spic.patch
BuildRequires: intltool BuildRequires: intltool
BuildRequires: gtk2-devel >= 2.14 BuildRequires: gtk2-devel >= 2.14
@ -165,6 +166,7 @@ find . -name '*.stamp' | xargs touch
%patch0008 -p1 %patch0008 -p1
%patch0009 -p1 %patch0009 -p1
%patch0010 -p1 %patch0010 -p1
%patch0011 -p1
popd popd
%if %{with_gtk3} %if %{with_gtk3}
@ -286,6 +288,10 @@ rm -rf %{buildroot}%{_datadir}/pkgconfig/spice-protocol.pc
%{_bindir}/spicy-stats %{_bindir}/spicy-stats
%changelog %changelog
* Thu Apr 02 2015 Christophe Fergeau <cfergeau@redhat.com> 0.27-6
- Add patch fixing USB redirection related race/crash
Resolves: rhbz#1182226
* Tue Jan 27 2015 Marc-André Lureau <marcandre.lureau@redhat.com> 0.27-5 * Tue Jan 27 2015 Marc-André Lureau <marcandre.lureau@redhat.com> 0.27-5
- Fix reconnection on same session regressions introduced in 27-2. - Fix reconnection on same session regressions introduced in 27-2.